今天,一网友上传了个说是“一个新壳,搞了很久都脱不了”的程序,用新版的PEID可以查出是*PESHiELD 0.25 -> ANAKiN*加的壳,旧版的PEID是查不出什么壳的。用通用脱壳插件几秒搞掂,不过顺应那网友要求,用OD试试手脱,大家交流交流。呵呵,程序是VB6精简版编的。
0040492C > 60 pushad >>>>>>>>>>OD载入停在这
0040492D E8 00000000 call test.00404932
00404932 58 pop eax
00404933 8DA8 72FFFFFF lea ebp,dword ptr ds:[eax-8E]
00404939 8D98 CEB6FFFF lea ebx,dword ptr ds:[eax+FFFFB6>
0040493F 8DB0 74010000 lea esi,dword ptr ds:[eax+174]
00404945 8D4E F6 lea ecx,dword ptr ds:[esi-A]
00404948 48 dec eax
ALT+M,在00401000处下内存访问断点,按F9运行。
0040497A A4 movs byte ptr es:[edi],byte ptr ds:[esi] >>>>>>断在这,取消内存断点,按F8跟下去,遇到往上跳的可在下一行点击后按F4,
0040497B B6 80 mov dh,80
0040497D FFD3 call ebx
0040497F ^ 73 F9 jnb short test.0040497A
00404981 33C9 xor ecx,ecx
00404983 FFD3 call ebx
00404985 73 16 jnb short test.0040499D
00404987 33C0 xor eax,eax
。。。。。。。。。
004049E4 ^\EB 97 jmp short test.0040497D
004049E6 33C9 xor ecx,ecx >>>>>>>>来到这按在命令行输入d 401000,并点击这行,按F4,可以看到代码的解压过程。
004049E8 41 inc ecx
004049E9 FFD3 call ebx
004049EB 13C9 adc ecx,ecx
004049ED FFD3 call ebx
004049EF ^ 72 F8 jb short test.004049E9
004049F1 C3 retn >>>>>>>>>到这是往上返回的,在4049F2处单击再按F4运行。
004049F2 5A pop edx >>>在此F4后,CTRL+F,输入popad查找,
004049F3 5D pop ebp
004049F4 5B pop ebx
。。。。。。。。。
找到这:
00404A94 ^\75 D0 jnz short test.00404A66
00404A96 61 popad>>>>>>>>>找到此后,按F8跟下去
00404A97 ^ E9 90FEFFFF jmp test.<ModuleEntryPoint>
00404A9C 02D2 add dl,dl
00404A9E 75 05 jnz short test.00404AA5
00404AA0 8A16 mov dl,byte ptr ds:[esi]
00404AA2 46 inc esi
00404AA3 12D2 adc dl,dl
00404AA5 C3 retn
到404AA5后返回到:
0040492C >- E9 FFC7FFFF jmp test.00401130 >>>>>>>>>跳到OEP
00404931 0058 8D add byte ptr ds:[eax-73],bl
00404934 A8 72 test al,72
。。。。。。。
0040111C - FF25 28104000 jmp dword ptr ds:[401028] ; MSVBVM60.EVENT_SINK_AddRef
00401122 - FF25 30104000 jmp dword ptr ds:[401030] ; MSVBVM60.EVENT_SINK_Release
00401128 - FF25 60104000 jmp dword ptr ds:[401060] ; MSVBVM60.ThunRTMain
0040112E 0000 add byte ptr ds:[eax],al
00401130 68 64124000 push test.00401264 *******VB程序经典OEP,在这DUMP就脱壳成功,如不能正常运行的可用IREC修复一下。
00401135 E8 EEFFFFFF call test.00401128 ; jmp to MSVBVM60.ThunRTMain
0040113A 0000 add byte ptr ds:[eax],al
0040113C 0000 add byte ptr ds:[eax],al
0040113E 0000 add byte ptr ds:[eax],al
00401140 3000 xor byte ptr ds:[eax],al
00401142 0000 add byte ptr ds:[eax],al
00401144 3800 cmp byte ptr ds:[eax],al
00401146 0000 add byte ptr ds:[eax],al
00401148 0000 add byte ptr ds:[eax],al
0040114A 0000 add byte ptr ds:[eax],al
0040114C 0C 02 or al,2
Created By cnnets, 2005.05.04
附件为原加壳文件,有兴趣的试试。
附件:test.rar
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!