首页
社区
课程
招聘
[求助]如何在函数头下条件断点
发表于: 2016-3-1 00:51 3883

[求助]如何在函数头下条件断点

2016-3-1 00:51
3883
004E3240  /$  56            PUSH ESI
004E3241  |.  57            PUSH EDI
004E3242  |.  8BF9          MOV EDI,ECX                              ;  edi = ecx
004E3244  |.  33F6          XOR ESI,ESI
004E3246  |.  8B47 10       MOV EAX,DWORD PTR DS:[EDI+10]     //这里的EAX的值下断后会变化,如何当EAX = 36C467B8时候判断这个函数的来源呢
004E3249  |.  85C0          TEST EAX,EAX
004E324B  |.  7E 2F         JLE SHORT elementc.004E327C
004E324D  |>  8B47 0C       /MOV EAX,DWORD PTR DS:[EDI+C]            ;  eax = edi + c
004E3250  |.  8B04B0        |MOV EAX,DWORD PTR DS:[EAX+ESI*4]
004E3253  |.  85C0          |TEST EAX,EAX
004E3255  |.  74 1D         |JE SHORT elementc.004E3274
004E3257  |.  8B48 04       |MOV ECX,DWORD PTR DS:[EAX+4]
004E325A  |.  85C9          |TEST ECX,ECX
004E325C  |.  75 16         |JNZ SHORT elementc.004E3274
004E325E  |.  8B48 08       |MOV ECX,DWORD PTR DS:[EAX+8]
004E3261  |.  E8 CA3E0000   |CALL elementc.004E7130
004E3266  |.  85C0          |TEST EAX,EAX
004E3268  |.  7F 0A         |JG SHORT elementc.004E3274
004E326A  |.  6A 00         |PUSH 0
004E326C  |.  56            |PUSH ESI
004E326D  |.  8BCF          |MOV ECX,EDI
004E326F  |.  E8 2CFAFFFF   |CALL elementc.004E2CA0
004E3274  |>  8B47 10       |MOV EAX,DWORD PTR DS:[EDI+10]
004E3277  |.  46            |INC ESI
004E3278  |.  3BF0          |CMP ESI,EAX
004E327A  |.^ 7C D1         \JL SHORT elementc.004E324D
004E327C  |>  5F            POP EDI
004E327D  |.  B0 01         MOV AL,1
004E327F  |.  5E            POP ESI
004E3280  \.  C2 0400       RETN 4

地址 004E3246  那里  的EAX的值下断后会变化,如何当EAX = 36C467B8时候判断这个函数的来源呢

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
hook过滤下
2016-3-1 01:07
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能详细点么,我听不懂
2016-3-1 01:08
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
...
push eax
call xxx 过滤
...
jmp xxx
2016-3-1 01:11
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个我下条件断点就行了呀
2016-3-1 01:15
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
过滤下如果是想要的值栈回溯
2016-3-1 01:17
0
雪    币: 1216
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
OD中条件断点 shift + F2,然后设置 eax== 0x36C467B8 应该就能断下来
2016-3-1 08:30
0
雪    币: 319
活跃值: (2439)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
8
用脚本:

bp 0x004E3240

looper:
esto
cmp DWORD PTR DS:[EDI+10],0x36C467B8
jne looper
ret

脚本停下后,查看堆栈[esp+0x8]就是返回的地址,返回的地址的上面一行就是调用地址。
2016-3-1 08:40
0
雪    币: 12
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
难道条件断点不能用吗?
2016-3-1 15:00
0
游客
登录 | 注册 方可回帖
返回
//