吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 23237|回复: 35
收起左侧

[原创] 手脱带注册框的VMP+ZPROTECT双层壳

  [复制链接]
yangand 发表于 2012-7-14 11:48
       首先,我要说一下一些人总喜欢问某个软件是什么壳,我觉得这很没意思。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就会报错。
       看一下本试验品的区段
       1.jpg
第一个区段textbss是ZP的特征,XXXX1,XXXX0,XXXX2,XXXX3是VMP壳的区段特征。

下面开始脱壳,截入实验品,先用FKVMP或者ZEUS找到VMP的RETN特征地址,本实例的是031D79F1。
bp VirtualProtect+13下好断点,F9一直运行,直到堆栈窗口出现如下图的PAGE_READONLY,这时取消断点,ALT+F9返回
未命名.jpg
再在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#

点评

高手眼中什么柿子都是软的,膜拜中。  发表于 2012-12-20 10:43

免费评分

参与人数 1热心值 +1 收起 理由
Chief + 1 欢迎分析讨论交流[吾爱破解论坛]有你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Sound 发表于 2012-7-14 12:16
本帖最后由 Sound 于 2012-7-13 19:17 编辑

ZP和VMP加壳

需要兼容

所以ZP都是默认加壳  IAT没加密很正常

因为后续需要VMP来加密

文章虽然很短 切入要点 还算不错
LoongKing 发表于 2012-7-14 12:14
statlove 发表于 2012-7-14 11:54
根本不明白 根本不会脱壳 但是 只知道第一步载入od ~~~~~~ - -!
Chief 发表于 2012-7-14 12:24
很好,手打那么多字。
欢迎出破文。
 楼主| yangand 发表于 2012-7-14 12:22
Sound 发表于 2012-7-14 12:16
ZP和VMP加壳

需要兼容

这个的IAT没被ZP加密,找不到ZP加密的特征。都是用JMP DWORD来代替的。用UIF修复,总是提示偏移错误,我倒是希望他是ZP默认加壳的.ZP加密IAT,VMP就不会再加密了,对付ZP要容易得多。以前我自己加过ZP和VMP的双层壳,可以用无KEY解码搞,这个实验品却不行。这个ZP就这两点很特别。
ZP,VMP双层壳,ZP是不能默认加壳的,必须把文件校验去掉地能加得上。VMP是不可能去处理ZP的文件校验的
Kido 发表于 2012-7-14 12:25
膜拜杨安师傅。

1354669803 发表于 2012-7-14 12:26
想知道用FKVMP插件的具体操作 还想问下E2A4-747F-388D-323B  机器码
84C4DC742C767B1ED5DC6404B2B4027BDD60E57C58C8567EC50276CBBC69A22B010A   这些的作用...
54854845 发表于 2012-7-14 12:28
新手路过  啥都看不明白~~~学习中
 楼主| yangand 发表于 2012-7-14 12:30
1354669803 发表于 2012-7-14 12:26
想知道用FKVMP插件的具体操作 还想问下E2A4-747F-388D-323B  机器码
84C4DC742C767B1ED5DC6404B2B4027BDD6 ...

如果安装了FKVMP插件,在代码窗口,直接点右键,选择START FKVMP,然后打开记录窗口,里面就会一些信息,找到RETN的地址就可以了。具体请看一下KISSY的继续和谐VMP
要有一组机器码和注册码,也就是把自己电脑上的机器码改成别人注册过的机器码,这样那个注册码就能在自己电脑上使用了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 02:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表