首页
社区
课程
招聘
一个调试VC程序的问题(请看雪斑竹回复一下)
发表于: 2004-11-12 14:55 7197

一个调试VC程序的问题(请看雪斑竹回复一下)

2004-11-12 14:55
7197
用EXESCOPE打开一VC程序,里面有一对话框,其ID为65,EXESCOPE左下脚提示

偏移量=0004A0B0,大小=03BE

对话框里有一“确定”按钮,其ID为1005。

请问,如何根据这几个信息精确定位“确定”按钮的 OnClick事件偏移地址。(像DEDE反汇编DELPHI程序那样,能知道每个BUTTON的Offset)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (20)
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
2
如果程序由 C 编写,那并没有 onclick 这种东西

C 程序没有 “事件” 的观念,所有使用者动作,都被系统以Message(信息) 的方式反映出来。

例如使用者按下一个按钮,程序窗口会接收到一个 wm_command 信息,程序的信息处理程序会区别收到的信息,再跳到处理它的地方

处理信息的程序,它的位置可以由窗口的查询工具得到 (以 GetWindowLong )
2004-11-12 15:49
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
“子控件向父窗口发送的消息是WM_COMMAND,并在传递的参数wPara的底位中包括控件的ID号,消息号在wParam的高位,lParam中则包括了子控件的窗口的句柄”
2004-11-12 17:01
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
最初由 mhsong 发布
“子控件向父窗口发送的消息是WM_COMMAND,并在传递的参数wPara的底位中包括控件的ID号,消息号在wParam的高位,lParam中则包括了子控件的窗口的句柄”

明白了Hiword(wParam),Loword(wParam)的作用,谢谢俄。
2004-11-12 17:15
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢几位朋友积极答复!
2004-11-12 17:23
0
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
最初由 zch2008 发布
谢谢几位朋友积极答复!


下次不要点将了哦,大家都很热情的。:)
2004-11-12 17:25
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
请问,如何根据这几个信息精确定位“确定”按钮的 OnClick事件偏移地址。(像DEDE反汇编DELPHI程序那样,能知道每个BUTTON的Offset)

虽然有回答,但是还没有解决问题。

大家平时用什么办法?  比如利用button的ID号知道他要执行的代码段。 然后就可以去下断点。。。
2004-11-12 17:32
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
利用button的ID号知道他要执行的代码段。 然后就可以去下断点。。。

是不可以的……
2004-11-12 18:42
0
雪    币: 3246
活跃值: (374)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
9
如果要完全搞清消息流向,得看《深入浅出MFC》之类的书吧?调VC的程序如果有配套的MFCxx.PDB或者MFCxx.NMS是很方便的:D
2004-11-12 19:25
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
10
我不爱用 MFC
总觉得直接用 API 的传统写作方式最舒服  ;)
2004-11-13 00:17
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
11
最初由 kimlon 发布
请问,如何根据这几个信息精确定位“确定”按钮的 OnClick事件偏移地址。(像DEDE反汇编DELPHI程序那样,能知道每个BUTTON的Offset)

虽然有回答,但是还没有解决问题。

大家平时用什么办法? 比如利用button的ID号知道他要执行的代码段。 然后就可以去下断点。。。


若是他没有用MFC,可以找到show dialog的函数,一般是DialogBoxParam,但是要注意参数。

找到以后进去,看wParam,对应WM_COMMAND的判断分支就是WM_COMMAND,然后找lParam对应ID的Jxx就可以了。

今天下午静态分析一个shareware时悟到的。做个reverse确实收获很大,哪怕还没有做完。

MFC的话……请问kanxue有熟悉MFC的吗?拜一拜,学习学习。
2004-11-13 00:33
0
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
12
最初由 firstrose 发布


若是他没有用MFC,可以找到show dialog的函数,一般是DialogBoxParam,但是要注意参数。

找到以后进去,看wParam,对应WM_COMMAND的判断分支就是WM_COMMAND,然后找lParam对应ID的Jxx就可以了。
........

MFC小楼好像比较熟悉,最近在研究这个。
2004-11-13 08:35
0
雪    币: 166
活跃值: (112)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
你可以看看这个,我在作的东西

http://www.blogcn.com/user20/xixiaolou/index.html
2004-11-13 09:52
0
雪    币: 237
活跃值: (175)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
DeMFC Lite v0.2 没有下载吗?
2004-11-13 10:49
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
MFC 还是比较好用

不过SDK的比较爽
2004-11-13 11:52
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
TO:firstrose
能把你的找的真个过程详细些出来吗。最好有例子,那就太好了。
谢谢firstrose,以及这个坛子所有朋友!
2004-11-13 14:22
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
强烈要求小楼兄把 DeMFC Lite v0.2 放出来。

大家也可以帮你测试。工具是在测试中不断完美的。
2004-11-15 13:45
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
18
最初由 kanxue 发布

MFC小楼好像比较熟悉,最近在研究这个。


小楼,不是写VB PCODE逆向的那个吗?网上就2篇,没下文了。

改行了?


你可以看看这个,我在作的东西

http://www.blogcn.com/user20/xixiaolou/index.html


汗……拜一个。
2004-11-15 17:38
0
雪    币: 150
活跃值: (116)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
mfc的消息处理也和delphi差不多,都有一个消息处理表格,先处理这个表格中的相应事件,然后再传递给父类。
vc7中我找过,实在一个附加段中。好像是长度20字节的一个结构体有按钮id、事件、处理过程的入口点。
vc6中也有,不过还没有找到规律。
2004-11-15 18:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
会调函数一般在注册窗口类或者生成窗体的函数的参数里有地址,直接这么定位就可以了
2004-11-15 21:40
0
雪    币: 150
活跃值: (116)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
最初由 yafeng 发布
会调函数一般在注册窗口类或者生成窗体的函数的参数里有地址,直接这么定位就可以了


sdk可以这么干,但是mfc就不能了,消息处理十分的麻烦,根本没有sdk中的消息回调函数。
2004-11-16 18:34
0
游客
登录 | 注册 方可回帖
返回
//