能力值:
( LV2,RANK:10 )
|
-
-
2 楼
可能有自校验。
|
能力值:
(RANK:350 )
|
-
-
3 楼
可能是rubo所说的原因,你用OD加载脱壳后的程序,与原程序对比着跟踪一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
00407000 >/$ 53 push ebx
00407001 |. 8BD8 mov ebx, eax
00407003 |. 33C0 xor eax, eax
00407005 |. A3 A4704E00 mov dword ptr [4E70A4], eax
0040700A |. 6A 00 push 0 ; /pModule = NULL
0040700C |. E8 2BFFFFFF call <jmp.&kernel32.GetModuleHandleA> ; \GetModuleHandleA
00407011 |. A3 68B64E00 mov dword ptr [4EB668], eax
00407016 |. A1 68B64E00 mov eax, dword ptr [4EB668]
0040701B |. A3 B0704E00 mov dword ptr [4E70B0], eax
00407020 |. 33C0 xor eax, eax
00407022 |. A3 B4704E00 mov dword ptr [4E70B4], eax
00407027 |. 33C0 xor eax, eax
00407029 |. A3 B8704E00 mov dword ptr [4E70B8], eax
0040702E |. E8 C1FFFFFF call 00406FF4
00407033 |. BA AC704E00 mov edx, 004E70AC
00407038 |. 8BC3 mov eax, ebx
0040703A |. E8 45D7FFFF call 00404784
0040703F |. 5B pop ebx
00407040 \. C3 retn
多谢二位,出现这问题时就跟踪过了,上面是脱过壳的OEP(00407000)附近代码,不知是否是伪OEP,脱后PEID 094看是Borland Delphi 6.0 - 7.0,并且EP那里是空的。
这段代码的7040处也就是C3 retn 看堆栈是返回到kernel32的,过去后没几句就exitprocess了,而没脱过壳的走到这里不会返回kernel32那里。
请教各位还有什么可能么?
|
能力值:
( LV12,RANK:200 )
|
-
-
5 楼
肯定是自效验
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
经观察,脱壳后到达407000时,各寄存器的值和未脱壳到达同样地点时的值完全不同,有没有可能是偷代码呢?
|
|
|