首页
社区
课程
招聘
[原创]修改OllyICE, 方便调试MFC程序
发表于: 2008-7-31 08:07 37472

[原创]修改OllyICE, 方便调试MFC程序

2008-7-31 08:07
37472
通常在调试MFC程序时,虽然可以通过导入MFC42.lib来得到函数名称,但是默认的函数名称类似于:


在名称列表中是按序号排序的。试想如果要查找在何处调用_AfxWinMain,但是又不知道序号,要在上千个函数列表中找到,将是一项艰巨的任务。
在分析某个MFC程序时感到太累,就想了一个办法把所有带序号的名称统统转换为如下格式:

经过努力,终于实现了这个目标。

分析OllyICE代码后,发现需要修改四个地方,添加一块代码。

第一处修改:
0045CEF0    mov     ecx, dword ptr [ebp-8]    ; 改
0045CEF3    mov     byte ptr [ebp+ecx-288], 5F  ; 改

改为:
0045CEF0    jmp    004AF7C0
0045CEF5    nop
0045CEF6    nop
0045CEF7    nop
0045CEF8    nop
0045CEF9    nop
0045CEFA    nop


在004AF7C0处添加如下代码:
004AF7C0    lea     edx, dword ptr [ebp-288]
004AF7C6    inc     edx
004AF7C7    push    edx
004AF7C8    add     edx, dword ptr [ebp-8]
004AF7CB    add     edx, eax
004AF7CD    mov     byte ptr [edx], 5F
004AF7D0    inc     edx
004AF7D1    push    edx
004AF7D2    call    dword ptr [50D458]           ;  kernel32.lstrcpyA
004AF7D8    lea     edx, dword ptr [ebp-288]
004AF7DE    add     edx, dword ptr [ebp-8]
004AF7E1    inc     edx
004AF7E2    push    edx
004AF7E3    lea     edx, dword ptr [ebp-288]
004AF7E9    push    edx
004AF7EA    call    dword ptr [50D458]           ;  kernel32.lstrcpyA
004AF7F0    jmp     0045CEF5


第二处修改:
0045D3A4    lea     edx, dword ptr [ebp-488]
0045D3AA    lea     eax, dword ptr [ebp-388]
0045D3B0    push    edx
0045D3B1    lea     edx, dword ptr [ebp-288]
0045D3B7    mov     ecx, dword ptr [ebp-3C]
0045D3BA    push    ecx
0045D3BB    push    eax
0045D3BC    push    004BC07B                     ;  ASCII "%s.#%i_%s"
0045D3C1    push    edx                          ; |Arg1
0045D3C2    call    <_sprintf>                   ; \OllyICE.004A6C2C

改为:
0045D3A4    mov     ecx, dword ptr [ebp-3C]
0045D3A7    push    ecx
0045D3A8    lea     edx, dword ptr [ebp-488]
0045D3AE    push    edx
0045D3AF    lea     eax, dword ptr [ebp-388]
0045D3B5    push    eax
0045D3B6    push    004BC134           ;  ASCII "%s.%s_%i"
0045D3BB    lea     edx, dword ptr [ebp-288]
0045D3C1    push    edx                          ; |Arg1
0045D3C2    call    <_sprintf>                   ; \OllyICE.004A6C2C


第三处修改:
0045D478   lea     eax, dword ptr [ebp-488]
0045D47E   lea     ecx, dword ptr [ebp-388]
0045D484   push    eax                              ; /Arg5
0045D485   lea     eax, dword ptr [ebp-288]         ; |
0045D48B   mov     edx, dword ptr [ebp-3C]          ; |
0045D48E   push    edx                              ; |Arg4
0045D48F   push    ecx                              ; |Arg3
0045D490   push    004BC07B                         ; |Arg2 = 004BC07B ASCII "%s.#%i_%s"
0045D495   push    eax                              ; |Arg1
0045D496   call    <_sprintf>                       ; \OllyICE_.004A6C2C

改为:
0045D478   mov     edx, dword ptr [ebp-3C]
0045D47B   push    edx                              ; /Arg5
0045D47C   lea     eax, dword ptr [ebp-488]         ; |
0045D482   push    eax                              ; |Arg4
0045D483   lea     ecx, dword ptr [ebp-388]         ; |
0045D489   push    ecx                              ; |Arg3
0045D48A   push    004BC07B                         ; |Arg2 = 004BC07B ASCII "%s.%s_%i"
0045D48F   lea     eax, dword ptr [ebp-288]         ; |
0045D495   push    eax                              ; |Arg1
0045D496   call    <_sprintf>                       ; \OllyICE_.004A6C2C


第四处直接修改:
004BC07B  25 73 2E 25 73 5F 25 69 00 00             ; %s.%s_%i..


修改后的OllyICE放在附件中。
OllyICE_2.rar

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (63)
雪    币: 419
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
test hohohoho
2008-7-31 11:42
0
雪    币: 283
活跃值: (1711)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
谢谢楼主分享,支持
2008-8-1 11:26
0
雪    币: 8149
活跃值: (1875)
能力值: ( LV8,RANK:122 )
在线值:
发帖
回帖
粉丝
4
不错,挺有用的
2008-8-6 22:19
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
很有用,建议kanxue更新一下工具区ollydbg,省得弟兄们修改了
2008-8-11 13:20
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
6
这个也比较强悍~
2008-8-13 22:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
非常好的修改呀!多谢楼主!
2008-9-14 08:44
0
雪    币: 216
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢楼主分享,学习了
2008-9-14 09:01
0
雪    币: 1083
活跃值: (370)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好东西,收藏。
2008-9-19 12:17
0
雪    币: 239
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这么好的文章,应该加精华鼓励楼主啦
2008-9-22 12:00
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好东西要顶起呀.
2008-9-22 17:04
0
雪    币: 123
活跃值: (95)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
确实是好东西,不用再到MFC的海洋中去找一个函数了,THANKS
2008-9-25 23:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好就一个字!
2008-9-26 15:54
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
14
bump and lurk
2008-9-30 07:01
0
雪    币: 200
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢谢楼主分享!
2008-10-4 13:30
0
雪    币: 219
活跃值: (1634)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
16
这个比较牛,才发现..
2008-10-5 13:24
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
17
KANXUE过节去了,没看到,我再顶一下
2008-10-5 18:46
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
test it!!!! thanks..
2008-10-7 08:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
太好啦,楼主太有才了
2008-10-27 10:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
好东西就要:“顶”……
2008-10-29 12:57
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
好东西.顶起啊....老大还是更新下工具区吧..N久没更新了..
2008-11-5 13:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
看了一便,好多都不懂,先潜水去学习一下,等入门了再来
2008-11-27 17:03
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
非常感谢。
收下用了。
2008-12-2 22:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习下··学习下··
2008-12-4 00:42
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
谢谢楼主分享
2008-12-6 10:07
0
游客
登录 | 注册 方可回帖
返回
//