PEID查看为Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks 双进程
我的步骤:
设置Ollydbg忽略所有异常,用IsDebug 1.4插件去掉Ollydbg的调试器标志。
OD 载入
00433049 >/$ 55 PUSH EBP
0043304A |. 8BEC MOV EBP,ESP
0043304C |. 6A FF PUSH -1
0043304E |. 68 48824500 PUSH 全能王2_.00458248
00433053 |. 68 902A4300 PUSH 全能王2_.00432A90 ; SE 处理程序安装
00433058 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
下断点BP OpenMutexA
F9运行中断后,看堆栈
0012F5B4 00429D8C /CALL 到 OpenMutexA 来自 全能王2_.00429D86
0012F5B8 001F0001 |Access = 1F0001
0012F5BC 00000000 |Inheritable = FALSE
0012F5C0 0012FBF4 \MutexName = "E30::DA92C73110"
在CPU窗口中 Ctrl+G:401000 键入以下代码:
00401000 60 PUSHAD
00401001 9C PUSHFD
00401002 68 F4FB1200 PUSH 12FBF4 ; ASCII "E30::DA92C73110"(堆栈里看到的值)
00401007 33C0 XOR EAX,EAX
00401009 50 PUSH EAX
0040100A 50 PUSH EAX
0040100B E8 B5A6A577 CALL kernel32.CreateMutexA
00401010 9D POPFD
00401011 61 POPAD
00401012 - E9 7A13A677 JMP kernel32.OpenMutexA
在 401000 处点鼠标右键 "此处为新 EIP",F9运行,再次中断在OpenMutexA处,F2取消断点。此时Ctrl+G:401000 撤销刚才的修改的代码,使代码还原。
下断点 HE GetModuleHandleA
按F9运行中断后,看堆栈:
0012ECE8 77C059FC /CALL 到 GetModuleHandleA 来自 msvcrt.77C059F6
0012ECEC 77BE31AC \pModule = "kernel32.dll"
0012ECF0 77C2CA20 msvcrt.77C2CA20
0012EDAC 772A8663 /CALL 到 GetModuleHandleA 来自 772A865D
0012EDB0 772AF8FC \pModule = "KERNEL32.DLL"
0012ECD4 770FB124 /CALL 到 GetModuleHandleA 来自 OLEAUT32.770FB11E
0012ECD8 771722E4 \pModule = "KERNEL32.DLL"
0012ECDC 770FAD56 返回到 OLEAUT32.770FAD56 来自 OLEAUT32.770FB119
0012ECE0 77172080 OLEAUT32.77172080
0012ECD0 770FB124 /CALL 到 GetModuleHandleA 来自 OLEAUT32.770FB11E
0012ECD4 771722E4 \pModule = "KERNEL32.DLL"
0012ECD8 770FADAC 返回到 OLEAUT32.770FADAC 来自 OLEAUT32.770FB119
0012ECDC 77172064 OLEAUT32.77172064
0012F560 00429073 /CALL 到 GetModuleHandleA 来自 全能王2_.0042906D
0012F564 00000000 \pModule = NULL
0012D28C 00A9519B /CALL 到 GetModuleHandleA 来自 00A95195
0012D290 0012D3C8 \pModule = "kernel32.dll"
0012D28C 00A9519B /CALL 到 GetModuleHandleA 来自 00A95195
0012D290 0012D3C8 \pModule = "user32.dll"
0012D28C 00A9519B /CALL 到 GetModuleHandleA 来自 00A95195
0012D290 0012D3C8 \pModule = "MSVBVM60.DLL"
0012CB90 73391BB1 /CALL 到 GetModuleHandleA 来自 73391BAB
0012CB94 73393D98 \pModule = "kernel32.dll"
0012CB98 73391B50 返回到 73391B50 来自 73391B7C
0012CB84 73392848 /CALL 到 GetModuleHandleA 来自 73392842
0012CB88 73393DC4 \pModule = "KERNEL32"
0012CB7C 733931E9 /CALL 到 GetModuleHandleA 来自 733931E3
0012CB80 00000000 \pModule = NULL
0012D28C 00A9519B /CALL 到 GetModuleHandleA 来自 00A95195
0012D290 0012D3C8 \pModule = "advapi32.dll"
再运行程序就出错了。用SHIFT+F9也不动
请问一下上面几个是不是有返回点?是哪个?请帮帮忙!谢谢。。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)