首页
社区
课程
招聘
几种典型程序Button处理代码的定位
2006-1-4 15:33 75427

几种典型程序Button处理代码的定位

2006-1-4 15:33
75427
收藏
点赞9
打赏
分享
最新回复 (70)
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wdx 2006-1-5 18:28
26
0
好好学习一下,谢谢
雪    币: 279
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
pentacleNC 4 2006-1-5 18:49
27
0
好东西得收藏
雪    币: 221
活跃值: (137)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
xsy3660 4 2006-1-5 19:40
28
0
自己试了一程序SnagIt32.exe,是Microsoft Visual C++ 7.0 Method2 [调试] ,按照此法不能断下来!WHY?
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2006-1-5 20:48
29
0
最初由 xsy3660 发布
自己试了一程序SnagIt32.exe,是Microsoft Visual C++ 7.0 Method2 [调试] ,按照此法不能断下来!WHY?


试了两个Button,都断下了:
0012FE44   77D5F4BA  /CALL to IsDialogMessageW from USER32.77D5F4B5
0012FE48   0002059E  |hWnd = 0002059E (class='#32770',parent=000205A6)
0012FE4C   00154E58  \pMsg = WM_LBUTTONUP hw = 30578 ("&Add New Profile Wizard...") Keys = 0 X = 216. Y = 11.

0012F918   77D5F4BA  /CALL to IsDialogMessageW from USER32.77D5F4B5
0012F91C   001C06A8  |hWnd = 001C06A8 ('Enter Software Key',class='#32770',parent=000304E2)
0012F920   00154E58  \pMsg = WM_LBUTTONUP hw = E0792 ("OK") Keys = 0 X = 34. Y = 13.
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2006-1-5 20:53
30
0
Ref.

雪    币: 221
活跃值: (137)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
xsy3660 4 2006-1-5 22:15
31
0
过程如下:




之后下断bp IsDialogMessageW [esp+8]==00106AE && [esp+0c]==202。F9后直接出现下列框

雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2006-1-5 22:42
32
0
你应该这样下断:bp IsDialogMessageW [[esp+8]]==00106AE && [[esp+8]+4]==202
雪    币: 221
活跃值: (137)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
xsy3660 4 2006-1-5 23:52
33
0
还有点问题:
1、下断,F9继续程序,点击目标按钮,程序中断后;Alt+F4无作用,为何?
2、对于MFC程序,我们不得不多次重复这样的操作:单步回到MFC领空,再第 5、6步。也就是说断下后按F8至到MFC领空是吧?
3、直到下列情况才算到处理Button点击事件的代码是吗?

0012FE44   77D5F4BA  /CALL to IsDialogMessageW from USER32.77D5F4B5
0012FE48   0002059E  |hWnd = 0002059E (class='#32770',parent=000205A6)
0012FE4C   00154E58  \pMsg = WM_LBUTTONUP hw = 30578 ("&Add New Profile Wizard...") Keys = 0 X = 216. Y = 11.

0012F918   77D5F4BA  /CALL to IsDialogMessageW from USER32.77D5F4B5
0012F91C   001C06A8  |hWnd = 001C06A8 ('Enter Software Key',class='#32770',parent=000304E2)
0012F920   00154E58  \pMsg = WM_LBUTTONUP hw = E0792 ("OK") Keys = 0 X = 34. Y = 13.
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
快雪时晴 4 2006-1-6 00:04
34
0
经试用该方法,很管用,准万能button断点法哦
雪    币: 233
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
okdodo 2 2006-1-6 13:32
35
0
佩服

一直没搞懂消息断点 长见识了 。
雪    币: 251
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
moon 5 2006-1-6 21:42
36
0
bp IsDialogMessageW [[esp+8]]==00106AE && [[esp+8]+4]==202

====>

bp IsDialogMessageW [[esp+8]]==00106AE && MSG==202

:)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
TarZan 2006-1-7 00:15
37
0
好东东,应该收到精华七里面去,
这样东东,就应该有人来做下,
尊敬楼主一下
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
workrow 2006-1-10 00:18
38
0
写的不错
再结合例子就是非常不错的教材了,呵呵,努力努力
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
elance 6 2006-1-11 22:04
39
0
一直苦于不知如何在button下断,这次受益霏浅,多谢高人指点迷津!!!
雪    币: 894
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2006-1-11 23:00
40
0
认真学习
雪    币: 220
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hahar 2006-1-12 00:13
41
0
5 Alt+F4,在代码段(.text)上下访问断点;
Alt+F4查了一下OD的帮助手册,没发现这个命令啊
能解释一下吗?
雪    币: 894
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2006-1-12 00:20
42
0
Alt+M 察看内存窗口
然后选择代码段点右键设置内存访问断点
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2006-1-12 15:24
43
0
谢 fly。
雪    币: 217
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sfind 1 2006-1-18 00:02
44
0
还是fly老师好啊,为什么我按alt+f4没有任何反映啊,我用的是fly的修改版OD,谢谢
雪    币: 425
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
鸡蛋壳 2006-2-16 11:05
45
0
有些DELPHI定不到关键地方,没有万能断点好用。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
elpelado 2006-2-20 23:21
46
0
同问

最初由 hahar 发布
5 Alt+F4,在代码段(.text)上下访问断点;
Alt+F4查了一下OD的帮助手册,没发现这个命令啊
能解释一下吗?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
elpelado 2006-2-20 23:23
47
0
在哪个内存地址设置断点呢?我是新手,刚接触这些东西,一头雾水呀:(

最初由 fly 发布
Alt+M 察看内存窗口
然后选择代码段点右键设置内存访问断点
雪    币: 251
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chang 2006-2-20 23:33
48
0
最初由 elpelado 发布
在哪个内存地址设置断点呢?我是新手,刚接触这些东西,一头雾水呀:(
上传的附件:
  • 1.jpg (94.99kb,437次下载)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
elpelado 2006-2-21 20:19
49
0
thank you
雪    币: 191
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
软件医生 2006-2-22 19:24
50
0
这里有个VB程序,可是我多次试验,无法定位
详细说明:
[软件]百度搜索――宇通霓虹CAD 2004 (试用版)
打开该软件,可以运行,不需要注册
打开文件――选择打开工程――任意选择一个――另存为
这时弹出一个窗口:试用版无此功能
必须选择[确定]
我加载以后,能够找到这个确定按钮的handle,可是无法准确拦截
请大家试验试验
游客
登录 | 注册 方可回帖
返回