使用ESP定律找OEP,我的数据窗口数据怎么和教学视频不一样啊?
wynney视频系列教学 - 初级班教程 - 第9、10例,和我电脑上显示的数据都不一样!
比如第10例,3800CC(天草)破解crackme_aspacked.exe
反汇编窗口 寄存器
00405002 E8 03000000 call crackme_.0040500A ESP 0012FFA4
在寄存器地址 0012FFA4上右健 --> 数据窗口中跟随 --> 选择低8位右键设置硬件断点
3800CC(天草)数据窗口
地址 十六进制
0012FFA4 A8 44 F9 77 70 7D F5 77
而我的数据窗口确是如下数据:
0012FFA4 08 02 93 7C FF FF FF FF
3800CC(天草)只用了4、5个F8就找到了OEP
即:
00401000 6A 00 push 0
00401002 E8 99020000 call crackme_.004012A0
.......
我在在这个位置
00405002 E8 03000000 call crackme_.0040500A
按F8后到了以下地址:
004053B0 /75 08 jnz short crackme_.004053BA
004053B2 |B8 01000000 mov eax, 1
004053B7 |C2 0C00 retn 0C
004053BA \68 00104000 push crackme_.00401000
004053BF C3 retn
retn 跳到了这里
00401000 6A db 6A ; CHAR 'j'
00401001 00 db 00
00401002 E8 db E8
00401003 99 db 99
00401004 02 db 02
00401005 00 db 00
00401006 00 db 00
......
.....
......
......
00401092 00 db 00
00401093 E8 db E8
00401094 C6 db C6
00401095 01 db 01
00401096 00 db 00
00401097 00 db 00
00401098 89 db 89
00401099 45 db 45 ; CHAR 'E'
0040109A EC db EC
0040109B 8D db 8D
0040109C 45 db 45 ; CHAR 'E'
0040109D D0 db D0
0040109E 50 db 50 ; CHAR 'P'
0040109F E8 db E8
再到这里
77D1A48D F3:A5 rep movs dword ptr es:[edi], dword p>
77D1A48F 76 04 jbe short user32.77D1A495
77D1A491 804D 14 80 or byte ptr [ebp+14], 80
77D1A495 64:A1 18000000 mov eax, dword ptr fs:[18]
77D1A49B F680 E0060000 0>test byte ptr [eax+6E0], 2
77D1A4A2 0F85 0D950200 jnz user32.77D439B5
77D1A4A8 33FF xor edi, edi
77D1A4AA F645 15 01 test byte ptr [ebp+15], 1
77D1A4AE 0F85 84450100 jnz user32.77D2EA38 跳到 77D2EA38
77D2EA38 6A 01 push 1
77D2EA3A 57 push edi
77D2EA3B 8D85 FCFEFFFF lea eax, dword ptr [ebp-104]
77D2EA41 50 push eax
77D2EA42 FF73 28 push dword ptr [ebx+28]
77D2EA45 E8 56AEFEFF call user32.77D198A0
77D2EA4A 8BF0 mov esi, eax
77D2EA4C 3BF7 cmp esi, edi
77D2EA4E ^ 0F85 63BAFEFF jnz user32.77D1A4B7
经过了N多代码,也没有打到传说中的OEP,请问这是怎么回事 ?怎么找不到程序入口地址啊!
[课程]Android-CTF解题方法汇总!