在下是新人,这个关键的OB使用ESP定律查找OEP问题使用问题?
我在网上找到的教程,我按其操作,但是都无法实现教程的结果。
教程里看到的 用OB打开一个EXE调试程序,右边寄存器里的ESP= 0012FFC4,而我开打相同的EXE(下载教程里的调试的EXE文件),寄存器显示的数据代码如下:
EAX 00000000
ECX 0013FFB0
EDX 7C92E4F4 ntdll.KiFastSystemCallRet
EBX 7FFD5000
ESP 0013FFC4
EBP 0013FFF0
ESI FFFFFFFF
EDI 7C930208 ntdll.7C930208
EIP 0040E8C0 notepad_.<模块入口点>
C 1 ES 0023 32 位 0(FFFFFFFF)
P 0 CS 001B 32 位 0(FFFFFFFF)
A 0 SS 0023 32 位 0(FFFFFFFF)
Z 0 DS 0023 32 位 0(FFFFFFFF)
S 1 FS 003B 32 位 7FFDF000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_NO_IMPERSONATION_TOKEN (0000051D)
EFL 00000283 (NO,B,NE,BE,S,PO,L,LE)
ST0 empty -UNORM BCE0 01050104 002E0067
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
3 2 1 0 E S P U O Z D I
FST 4020 Cond 1 0 0 0 Err 0 0 1 0 0 0 0 0 (EQ)
FCW 027F Prec NEAR,53 Mask 1 1 1 1 1 1
对应的反编译窗口的代码:
0040E8C0 > 60 pushad
0040E8C1 BE 15B04000 mov esi, 0040B015
0040E8C6 8DBE EB5FFFFF lea edi, dword ptr [esi+FFFF5FEB]
0040E8CC 57 push edi
0040E8CD 83CD FF or ebp, FFFFFFFF
0040E8D0 EB 10 jmp short 0040E8E2
0040E8D2 90 nop
0040E8D3 90 nop
0040E8D4 90 nop
0040E8D5 90 nop
0040E8D6 90 nop
0040E8D7 90 nop
0040E8D8 8A06 mov al, byte ptr [esi]
0040E8DA 46 inc esi
0040E8DB 8807 mov byte ptr [edi], al
0040E8DD 47 inc edi
0040E8DE 01DB add ebx, ebx
0040E8E0 75 07 jnz short 0040E8E9
ESP=0013FFC4,
与教程里的不同,网上所有教程里的与上述反编译代码对应的ESP=0012FFC4,都是这个值。
而我换了电脑,也换了调试的EXE文件,ESP都等于0013FFC4。
请教高手大大们,这是怎么回事?为什么不一样?
而我在使用ESP定律查找OEP时,在命令里即输入了“HW 12FFC0”(ESP定律)也输入了“HW 13FFC0”,都不能实现教程里的结果,而且很奇怪的是:在命令里输入命令后,按F9(ESP定律教程里提示这样做),OB打开了调试的程序(就像双击打开程序一样),而反编译里的代码仍然在开始执行命令(输入硬件中断HW命令,后按F9)的那一行:
0040E8C0 > 60 pushad
,并没有出现教程里的中断,更找不到OEP,完全调试不出来教程里的结果。
哎,似乎不能插入图片,要不图文并貌,要不看的更具体。
另有高手高人手徒弟或学生吗?或有能及时交流或请教的工具吗?论坛虽好,但请教起来还是不方便,不能及时马上处理。在下诚心学习,时间充足,计算机专业,有汇编等基础,苦于没人指导。
俗话说苦练十年,不如有个好师傅。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!