好友
阅读权限25
听众
最后登录1970-1-1
|
首先,我要说一下一些人总喜欢问某个软件是什么壳,我觉得这很没意思。PEID能查不出来的,一般都是加密壳,就算告诉你了,一般也没什么傻瓜工具可以对付。对于一个PEID查不出来的壳,最明智的选择是看一下他是不是自己有能力能脱的壳,自己能脱的壳,它的一些入口特征,和区段特征,我想一看也能猜出个一二来。如果是自己不能脱的壳,完全没必要去管他是什么壳,就直接反他归为未知壳一类。要破解就直接打补丁吧。不要为了破一个软件而去学某一种壳。
脱壳我也是菜鸟,脱本实验品,也只是借用一下XIMO大牛有关VMP壳的一些方法,还有就是CEKTOP大牛的ZPROTECT壳的方法。
判断一下是不是VMP+ZPROTECT的双层壳。ZPROTECT的特征一是有注册经典的ZPROTEC框,一个是第一个区段名textbss. VMP最名显的是区段特征,一般都会有VMP0,VMP1,VMP2这样的区段,有时候会改成别的XXX0,XXX1,XXX2。0,1,2这样的序号是不变的,至少是有0,1两个区段,有的还有0,1,2,3.这样一般不会变,VMP加壳的时候只能设置XXX,不会分别设置几个区段的名。加好之后,一般也不会改。VMP有自校验,改了区段名,VMP就会报错。
看一下本试验品的区段
第一个区段textbss是ZP的特征,XXXX1,XXXX0,XXXX2,XXXX3是VMP壳的区段特征。
下面开始脱壳,截入实验品,先用FKVMP或者ZEUS找到VMP的RETN特征地址,本实例的是031D79F1。
bp VirtualProtect+13下好断点,F9一直运行,直到堆栈窗口出现如下图的PAGE_READONLY,这时取消断点,ALT+F9返回
再在031D79F1处下个断点,F9运行到这里,再ALT+M,在第二个区段F2下个断点,F9运行,这时就停在了ZPROTECT壳的入口处了。
01C2911F E8 02000000 call 小光音频.01C29126
01C29124 35 D4870C24 xor eax,240C87D4
01C29129 8D89 52060000 lea ecx,dword ptr ds:[ecx+652]
01C2912F 870C24 xchg dword ptr ss:[esp],ecx
01C29132 E9 3F060000 jmp 小光音频.01C29776
01C29137 6F outs dx,dword ptr es:[edi]
01C29138 46 inc esi
01C29139 E9 CA000000 jmp 小光音频.01C29208
下面就可以按照ZPROTECT的套路来对付了。本来我是想用无KEY解码的,但是不知道为什么,这个实验品,无KEY解码不起作用。还好我有一组可用机器码和KEY。
E2A4-747F-388D-323B 机器码
84C4DC742C767B1ED5DC6404B2B4027BDD60E57C58C8567EC50276CBBC69A22B010A KEY
先F7几步来到01C29777
01C29776 60 pushad
01C29777 E9 A0010000 jmp 小光音频.01C2991C
在PUSHAD下面的JMP处下好ESP断点,准备让程序停到OEP处。
再下个bp DeviceIoControl断点,F9运行(一般是出现注册框的前一次反回),本实验品是运行两次ALT+F9返回。
0031F4E6 85C0 test eax,eax
0031F4E8 74 14 je short 0031F4FE
0031F4EA 8B5424 30 mov edx,dword ptr ss:[esp+30]
0031F4EE 8B4424 34 mov eax,dword ptr ss:[esp+34]
0031F4F2 8995 80000000 mov dword ptr ss:[ebp+80],edx
0031F4F8 8985 84000000 mov dword ptr ss:[ebp+84],eax
0031F4FE 57 push edi
0031F4FF FF15 5CA03000 call dword ptr ds:[30A05C] ; kernel32.CloseHandle
0031F505 33C0 xor eax,eax
0031F507 5F pop edi
0031F508 5D pop ebp
0031F509 81C4 A0020000 add esp,2A0
0031F50F C2 0400 retn 4
在0031F50F处F4运行到RETN,再F8
再搜命令mov edx,dword ptr ss:[esp+18],搜到的第二个处下个F2断点,让程序运行到这里,停在这里的时候,在数据窗口中跟随,改成HEX显示方式。这里显示的就是本机的机器码了,再在这里把他改成有KEY的机器码。注意格式,机器码是E2A4-747F-388D-323B,改的值是A4E27F74388D3B32(很明显的规律,自己找一下,也就是一个WORD一个WORD读的)。改好之后,运行。出现注册框之后,输入对应注册码之后,点确定。程序还会停在刚才改机器码的地方,再同样的改一次后运行,程序就会提示注册成功,然后退出。
再要按照上面的步骤重新做一次,不同的是,改一次机器码之后,程序就会停在ESP定很的硬件断点上了,F7走几步就能到达OEP了,这时,用OD的插件脱壳(脱壳时不修复IAT),本程序就能在本机上运行了。
本实验品有点特殊,它在加ZP时候,可能没有加密IAT,然后把IAT留给了VMP去加密。结果脱出来的不能跨平台使用。这样XIMO大牛的ZEUS神器也不起用了。还希望XIMO大牛能指点一下怎么弄一下跨平台。
如果是一般的VMP+ZP,到DUMP之后,用ZP FIXER干掉,应该是能跨平台的。
本帖没技术含量,要脱好ZPROTECT,建议多看一下CEKTOP大牛的文章。
实验品下载地址:http://115.com/file/dp4qawdx#
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|