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

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

2008-7-31 08:07
36814
通常在调试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

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

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