-
-
[原创]Processguard 中的自校验
-
发表于:
2006-6-8 12:18
7868
-
【目标软件】 Processguard
【下载地址】 http://www.diamondcs.com.au/processguard/pgsetup_3300b4.exe
【脱壳工具】 OllyIce及相关工具
【作者声明】 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试过程】
现在好多软件作者为了防止被脱壳,而设置了各式各样的自校验,有明有暗,有强有弱。最近刚搞定了一个小软件,感觉难度中等,把调试过程写出来,与大家分享,高手略过.
一、脱壳:
未知壳,不过用Esp定律可轻松脱掉。OD载入后这样的:
004DC027 > 60 PUSHAD
004DC028 EB 0A JMP SHORT 004DC034
004DC02A 44 INC ESP
004DC02B 6961 6D 6F6E644>IMUL ESP,[ECX+6D],43646E6F
004DC032 53 PUSH EBX
004DC033 00EB ADD BL,CH
004DC035 02EB ADD CH,BL
004DC037 05 E8F9FFFF ADD EAX,-618
004DC03C FF58 2D CALL FAR FWORD PTR [EAX+2D] ; 远调用
004DC14C 50 PUSH EAX
004DC14D B8 DE690100 MOV EAX,169DE
004DC152 35 28314000 XOR EAX,403128
004DC157 8BD8 MOV EBX,EAX
004DC159 58 POP EAX
004DC15A FFE3 JMP EBX //这里F7进去,到达这里
004158F6 B8 C4B64D00 MOV EAX,004DB6C4
004158FB 50 PUSH EAX
004158FC 64:FF35 0000000>PUSH DWORD PTR FS:[0]
00415903 64:8925 0000000>MOV FS:[0],ESP
004158F6 55 PUSH EBP
004158F7 8BEC MOV EBP,ESP
004158F9 6A FF PUSH -1
004158FB 68 30744100 PUSH 00417430
00415900 68 805A4100 PUSH 00415A80 ; JMP 到 msvcrt._except_handler3
00415905 64:A1 00000000 MOV EAX,FS:[0]
0041590B 50 PUSH EAX
0041590C 64:8925 0000000>MOV FS:[0],ESP
00415913 83EC 68 SUB ESP,68
00415916 53 PUSH EBX
00415917 56 PUSH ESI
00415918 57 PUSH EDI
00417118 7C82DE40 kernel32.lstrlenW
0041711C 7C82F2FB kernel32.GetLocalTime
00417120 00380425 //这个是什么呢?
00417124 7C82C1BA kernel32.CloseHandle
00417128 7C82C0C0 kernel32.GetDriveTypeW
0041712C 7C8024A8 kernel32.Sleep
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课