- UID
- 56327
注册时间2008-9-7
阅读权限10
最后登录1970-1-1
周游历练
TA的每日心情 | 开心 2023-12-12 13:42 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
|
本帖最后由 dahaiwubian 于 2023-11-14 13:54 编辑
脱壳跟踪到这里,这是oep入口前的最后代码,如果在*02CB1F16*按F8,程序就飞了,如果单步F7到*02CB1F3E*的ret就死了,查看OD的记录说是int3断点。我想搞明白壳的作者在这里搞了什么把戏,怎么能步进跟进去到oep呢?
02CB1F16 | E8 01000000 | call 2CB1F1C |
02CB1F1B | 8183 C4043104 24E | add dword ptr ds:[ebx+43104C4],1E824 |
02CB1F25 | 0000 | add byte ptr ds:[eax],al | eax:EntryPoint
02CB1F27 | 68 83C4048B | push 8B04C483 |
02CB1F2C | 05 D484CB02 | add eax,2CB84D4 | eax:EntryPoint
02CB1F31 | E8 02000000 | call 2CB1F38 |
02CB1F36 | E8 6883C404 | call 78FA2A3 |
02CB1F3B | 010424 | add dword ptr ss:[esp],eax | eax:EntryPoint
02CB1F3E | C3 | ret |
02CB1F3F | C3 | ret
下面是F7跟进的代码
02CB1F1C | 83C4 04 | add esp,4 |
02CB1F1F | 310424 | xor dword ptr ss:[esp],eax | eax:EntryPoint
02CB1F22 | E8 01000000 | call 2CB1F28 |
02CB1F27 | 68 83C4048B | push 8B04C483 |
02CB1F2C | 05 D484CB02 | add eax,2CB84D4 | eax:EntryPoint
02CB1F31 | E8 02000000 | call 2CB1F38 |
02CB1F36 | E8 6883C404 | call 78FA2A3 |
02CB1F3B | 010424 | add dword ptr ss:[esp],eax | eax:EntryPoint
02CB1F3E | C3 | ret |
02CB1F28 | 83C4 04 | add esp,4 |
02CB1F2B | 8B05 D484CB02 | mov eax,dword ptr ds:[2CB84D4] | eax:EntryPoint
02CB1F31 | E8 02000000 | call 2CB1F38 |
02CB1F36 | E8 6883C404 | call 78FA2A3 |
02CB1F3B | 010424 | add dword ptr ss:[esp],eax | eax:EntryPoint
02CB1F3E | C3 | ret |
02CB1F38 | 83C4 04 | add esp,4 |
02CB1F3B | 010424 | add dword ptr ss:[esp],eax | eax:EntryPoint
02CB1F3E | C3 | ret
另外,我发现只要是隐藏call(比如,上面的call,每一个call指向的地址,都在两个地址之间,)按F8都会飞。
|
|