1、代码位置:
01127F30 >/$ 6A FF PUSH -1 01127F32 |. 68 51752201 PUSH CEGUIBas.01227551 01127F37 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0] 01127F3D |. 50 PUSH EAX 01127F3E |. 81EC B0000000 SUB ESP,0B0 ; ZC:大块的局部变量区域(ESPfrom0012EBA0to0012EAF0) 01127F44 |. A1 00892E01 MOV EAX,DWORD PTR DS:[12E8900] 01127F49 |. 33C4 XOR EAX,ESP 01127F4B |. 898424 AC0000>MOV DWORD PTR SS:[ESP+AC],EAX 01127F52 |. 55 PUSH EBP 01127F53 |. 56 PUSH ESI 01127F54 |. 57 PUSH EDI
ZC: 上面的“大块局部变量区域” ESP从0012EBA0跳到了0012EAF0,其中有大量的遗留信息,OD同样会对它们作注释 可能会提示如下内容:
(1)、CALL的返回地址 (提示信息类似于“返回到 ????????”)
(2)、指向偏移 (提示信息类似于“OFFSET ????????”)
(3)、全局变量 (提示信息类似于“??模块名.????????”)
(4)、等等
它们不是是无效的信息,但是如果没有注意到局部变量的申请的话,就会以为 堆栈里面有函数返回等等的信息,依据这样的假的信息来 分析/跳转 的话 就可能被带到歪路上去,∴ “堆栈窗口 --> 右键 --> 反汇编窗口中跟随” 要慎用 需要确保确实是真正的函数返回 而非局部变量里面的过时信息。
2、
3、
时间: 2024-11-06 16:49:07