吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15554|回复: 27
收起左侧

[转贴] 手脱VMP2.09教程【转】我只是搬运工

[复制链接]
laoxing 发表于 2014-7-25 18:29
【文章标题】: 手脱VMP2.09
【文章作者】: bbchylml
【软件名称】: 飞鸽传书
【软件大小】: 156k
【下载地址】: 网上有下载
【加壳方式】: VMProtect v 2.09
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: VMProtect V2.09、OD、PEID v0.94、ImportREC_fix
【操作平台】: winXP
【软件介绍】: 大家熟知的局域网聊天文件传输工具
【作者声明】: 只是感兴趣,没有其他目的。本人也只是个菜鸟,失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  1.首先自己给程序加壳,加壳后的程序名字为飞鸽传书.vmp.exe。
  
  2.用PEID查查壳,显示“什么也没发现”。

  3.用OD载入程序,对于VMP壳来说我们可以用ESP定律进行脱壳,在命令行输入“hr esp”确定。然后F9并记录F9的次数(1次)程序到了,
004AE44E    89E5                        mov ebp,esp
004AE450    81EC C0000000       sub esp,0C0
004AE456    89E7                        mov edi,esp
004AE458    0375 00                   add esi,dword ptr ss:[ebp]
004AE45B    8A06                        mov al,byte ptr ds:[esi]
004AE45D    46                            inc esi
004AE45E    0FB6C0                    movzx eax,al

F9(2次)
004AE385    83C5 04                    add ebp,4
004AE388    891438                      mov dword ptr ds:[eax+edi],ed>
004AE38B    E9 CB000000             jmp 飞鸽传书.004AE45B
004AE390    0FB606                      movzx eax,byte ptr ds:[esi]
004AE393    66:8B55 00                mov dx,word ptr ss:[ebp]
004AE397    83C5 02                     add ebp,2
004AE39A    46                              inc esi

F9(3次)
004AE4D2  ^\E9 64FDFFFF             jmp 飞鸽传书.004AE23B
004AE4D7    66:8B6D 00                 mov bp,word ptr ss:[ebp]
004AE4DB  ^ E9 5BFDFFFF             jmp 飞鸽传书.004AE23B
004AE4E0    89E8                           mov eax,ebp
004AE4E2    83ED 02                     sub ebp,2
004AE4E5    66:8945 00                 mov word ptr ss:[ebp],ax

F9(4次)
004AE9DF    8945 00                     mov dword ptr ss:[ebp],eax
004AE9E2  ^ E9 74FAFFFF             jmp 飞鸽传书.004AE45B
004AE9E7    66:8B45 00                mov ax,word ptr ss:[ebp]
004AE9EB    83ED 02                     sub ebp,2
004AE9EE    66:0145 04                add word ptr ss:[ebp+4],ax
004AE9F2    9C                              pushfd
004AE9F3    8F45 00                      pop dword ptr ss:[ebp]

F9(5次)第五次还是在这里  
004AE9DF    8945 00                     mov dword ptr ss:[ebp],eax
004AE9E2  ^ E9 74FAFFFF             jmp 飞鸽传书.004AE45B
004AE9E7    66:8B45 00                mov ax,word ptr ss:[ebp]
004AE9EB    83ED 02                     sub ebp,2
004AE9EE    66:0145 04                add word ptr ss:[ebp+4],ax
004AE9F2    9C                             pushfd
004AE9F3    8F45 00                     pop dword ptr ss:[ebp]

F9(6次)
004AE32C    F7D0                         not eax
004AE32E    F7D2                         not edx
004AE330    21D0                         and eax,edx
004AE332    8945 04                     mov dword ptr ss:[ebp+4],eax
004AE335    9C                              pushfd
004AE336    8F45 00                     pop dword ptr ss:[ebp]
004AE339    E9 1D010000            jmp 飞鸽传书.004AE45B

F9(7次)
004AE335    9C                             pushfd
004AE336    8F45 00                     pop dword ptr ss:[ebp]
004AE339    E9 1D010000             jmp 飞鸽传书.004AE45B
004AE33E    8B45 00                     mov eax,dword ptr ss:[ebp]
004AE341    8A55 04                     mov dl,byte ptr ss:[ebp+4]
004AE344    83C5 06                     add ebp,6
004AE347    36:8810                     mov byte ptr ss:[eax],dl

由于
pushfd
pop dword ptr ss:[ebp]
是进出栈,所以我们F8单步并实现jmp来到
004AE45B    8A06                          mov al,byte ptr ds:[esi]
004AE45D    46                              inc esi
004AE45E    0FB6C0                      movzx eax,al
004AE461    FF2485 D9E54A00      jmp dword ptr ds:[eax*4+4AE5D>
004AE468    8B45 00                     mov eax,dword ptr ss:[ebp]
004AE46B    8A4D 04                     mov cl,byte ptr ss:[ebp+4]
004AE46E    83ED 02                     sub ebp,2

继续F9(8次)
004AE32C    F7D0                        not eax
004AE32E    F7D2                        not edx
004AE330    21D0                        and eax,edx
004AE332    8945 04                    mov dword ptr ss:[ebp+4],eax
004AE335    9C                            pushfd
004AE336    8F45 00                    pop dword ptr ss:[ebp]
004AE339    E9 1D010000           jmp 飞鸽传书.004AE45B

F9(9次)
004AE335    9C                             pushfd
004AE336    8F45 00                     pop dword ptr ss:[ebp]
004AE339    E9 1D010000             jmp 飞鸽传书.004AE45B
004AE33E    8B45 00                     mov eax,dword ptr ss:[ebp]
004AE341    8A55 04                     mov dl,byte ptr ss:[ebp+4]
004AE344    83C5 06                     add ebp,6
004AE347    36:8810                     mov byte ptr ss:[eax],dl

我们又来到pushfd,同样F8单步并实现jmp
004AE45B    8A06                          mov al,byte ptr ds:[esi]
004AE45D    46                             inc esi
004AE45E    0FB6C0                      movzx eax,al
004AE461    FF2485 D9E54A00     jmp dword ptr ds:[eax*4+4AE5D>
004AE468    8B45 00                     mov eax,dword ptr ss:[ebp]
004AE46B    8A4D 04                     mov cl,byte ptr ss:[ebp+4]
004AE46E    83ED 02                     sub ebp,2

继续F9(10次)
004AE306    83C5 04                     add ebp,4
004AE309    9D                             popfd
004AE30A    E9 4C010000            jmp 飞鸽传书.004AE45B
004AE30F    8B45 00                     mov eax,dword ptr ss:[ebp]
004AE312    8A4D 04                     mov cl,byte ptr ss:[ebp+4]
004AE315    83ED 02                     sub ebp,2
004AE318    D3E0                          shl eax,cl

F9(11次)
004AE411  ^\E9 25FEFFFF            jmp 飞鸽传书.004AE23B
004AE416    0FB606                      movzx eax,byte ptr ds:[esi]
004AE419    46                              inc esi
004AE41A    83ED 02                     sub ebp,2
004AE41D    66:8945 00                mov word ptr ss:[ebp],ax
004AE421  ^ E9 15FEFFFF             jmp 飞鸽传书.004AE23B

F9(12次)
004AE506    9C                             pushfd
004AE507    8F45 00                     pop dword ptr ss:[ebp]
004AE50A  ^ E9 4CFFFFFF            jmp 飞鸽传书.004AE45B
004AE50F    66:8B45 00                mov ax,word ptr ss:[ebp]
004AE513    8A4D 02                     mov cl,byte ptr ss:[ebp+2]
004AE516    83ED 02                     sub ebp,2

又是pushfd,我们还是F8单步并实现jmp
004AE45B    8A06                          mov al,byte ptr ds:[esi]
004AE45D    46                             inc esi
004AE45E    0FB6C0                      movzx eax,al
004AE461    FF2485 D9E54A00     jmp dword ptr ds:[eax*4+4AE5D>
004AE468    8B45 00                     mov eax,dword ptr ss:[ebp]
004AE46B    8A4D 04                     mov cl,byte ptr ss:[ebp+4]

继续F9(13次)
004183D7  /.  55                          push ebp
004183D8  |.  8BEC                      mov ebp,esp
004183DA  |.  6A FF                     push -1
004183DC  |.  68 18CB4100        push 飞鸽传书.0041CB18
004183E1  |.  68 2C9D4100         push 飞鸽传书.00419D2C            ;  SE 句柄安装

好了,经过13次F9,我们终于到达OEP了,一看就是VC++的程序,然后就是脱壳了。
脱壳后用ImportREC_fix修复。


【经验总结】: 本文只是提供一种脱VMP壳的思路,没有什么技术含量,大牛笑过。。。

点评

就是,楼下不要抄袭我了。。。  发表于 2014-7-25 21:57
发现我的签名到处都是了,不要抄袭好不撒,要有个性、。、、。、。、。、  发表于 2014-7-25 19:18

本帖被以下淘专辑推荐:

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

Jack丶雷 发表于 2014-8-19 17:07
你这个,能详细点吗?还有  那个怎么来着,你为什么这么肯定  到某处还有F8的?pushfd这样就要F8?还有遇进出栈  要F8?然后一直F9
月光下の魔术师 发表于 2014-7-25 21:31
心断空 发表于 2014-7-25 19:57
膜拜,,,VMP还可以这样脱。。。不过这真的是2.09的VMP???OEP都没改,毫无技术含量

没隐藏OEP而已,2.12.3你不手动设置也不会隐藏……
韩嗦 发表于 2014-7-25 18:35
uhyjjgt 发表于 2014-7-25 18:43
收藏了,谢分享...
瓜子吧3 发表于 2014-7-25 18:50
以后看,,收藏起。。。
回忆童年快乐 发表于 2014-7-25 18:51
VMP可以这么脱么?   受教了。。。。。
灵魂深处 发表于 2014-7-25 18:52
感谢楼主分享!
lwj一辈子 发表于 2014-7-25 18:55
精品文章啊
william87682 发表于 2014-7-25 19:46
好像对我来说没多大作用
LIKQ2000 发表于 2014-7-25 19:49
牛X呀,看到VMP都头大了,想不到可以这样脱掉。
心断空 发表于 2014-7-25 19:57
膜拜,,,VMP还可以这样脱。。。不过这真的是2.09的VMP???OEP都没改,毫无技术含量
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-17 09:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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