OD载入程序,情况如下
007E0998 >/$ 55 push ebp ; (initial cpu selection)
007E0999 |. 8BEC mov ebp, esp
007E099B |. B9 15000000 mov ecx, 15
007E09A0 |> 6A 00 /push 0
007E09A2 |. 6A 00 |push 0
007E09A4 |. 49 |dec ecx
007E09A5 |.^ 75 F9 \jnz short 007E09A0
007E09A7 |. B8 B8FC7D00 mov eax, 007DFCB8
007E09AC |. E8 BB6DC2FF call 0040776C
007E09B1 |. 33C0 xor eax, eax
007E09B3 |. 55 push ebp
007E09B4 |. 68 2B127E00 push 007E122B
........
F9运行一下,运行到kernel32系统领空
7C812AFB 5E pop esi
7C812AFC C9 leave
7C812AFD C2 1000 retn 10
F8至retn
回到程序领空
007B4136 . A1 90D87E00 mov eax, dword ptr [7ED890]
007B413B . 8B00 mov eax, dword ptr [eax]
007B413D . E8 6EA60100 call 007CE7B0
007B4142 . B8 0C447B00 mov eax, 007B440C ; ASCII "Initializing language ..."
007B4147 . E8 C0690000 call 007BAB0C
007B414C . E8 13600000 call 007BA164
007B4151 . E8 92FDFFFF call 007B3EE8
007B4156 . B8 30447B00 mov eax, 007B4430 ; ASCII "Verifying database ..."
007B415B . E8 AC690000 call 007BAB0C
007B4160 . 8B15 00037F00 mov edx, dword ptr [7F0300]
007B4166 . A1 FC027F00 mov eax, dword ptr [7F02FC]
007B416B . E8 10850000 call 007BC680
007B4170 . A1 FC027F00 mov eax, dword ptr [7F02FC]
007B4175 . E8 9E890000 call 007BCB18
007B417A . 8845 FF mov byte ptr [ebp-1], al
007B417D . 807D FF 00 cmp byte ptr [ebp-1], 0
007B4181 . 74 09 je short 007B418C
007B4183 . E8 10040000 call 007B4598
007B4188 . 85C0 test eax, eax
007B418A 75 04 jnz short 007B4190
007B418C > 33C0 xor eax, eax
007B418E . EB 02 jmp short 007B4192
007B4190 > B0 01 mov al, 1
007B4192 > 8845 FF mov byte ptr [ebp-1], al
007B4195 . EB 04 jmp short 007B419B
007B4197 > C645 FF 00 mov byte ptr [ebp-1], 0
007B419B > 33C0 xor eax, eax
007B419D . 5A pop edx
007B419E . 59 pop ecx
007B419F . 59 pop ecx
007B41A0 . 64:8910 mov dword ptr fs:[eax], edx
007B41A3 . E9 B8000000 jmp 007B4260
007B41A8 .^ E9 1304C5FF jmp 004045C0
007B41AD 01 db 01
007B41AE 00 db 00
007B41AF 00 db 00
007B41B0 00 db 00
007B41B1 . E8904000 dd RemoteCo.004090E8
007B41B5 . B9417B00 dd RemoteCo.007B41B9
007B41B9 . 8945 F8 mov dword ptr [ebp-8], eax
继续一路 F8
00404F50 F0:FF4A F8 lock dec dword ptr [edx-8] ; RemoteCo.00403F68
00404F54 |. 75 08 jnz short 00404F5E
00404F56 |. 8D42 F8 lea eax, dword ptr [edx-8]
00404F59 |. E8 2AD9FFFF call 00402888
00404F5E \> C3 retn
运行到这条,调制就变成终止了
00404F50 F0:FF4A F8 lock dec dword ptr [edx-8] ; RemoteCo.00403F68
按SHIFT+F7也没有反应
OD都还没载入到输入序列号的状态就终止调试了。
Nop掉这条LOCK命令继续在OD里面执行下去,程序报错提示,但如果直接运行保存过NOP 掉LOCK的程序,运行一点问题都没有
这算是程序有反调试功能吗?
路过的大侠,有什么思路提醒一下,万分感谢。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)