首页
社区
课程
招聘
[原创]手脱VMProtect V2.09壳
发表于: 2011-5-13 21:56 40230

[原创]手脱VMProtect V2.09壳

2011-5-13 21:56
40230
【文章标题】: 手脱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壳的思路,没有什么技术含量,大牛笑过。。。

--------------------------------------------------------------------------------
【版权声明】: 本文原创于bbchylml, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2011年05月13日 21:56:20

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (28)
雪    币: 220
活跃值: (721)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
太不通用了吧,一个F9我的程序直接运行起来了
2011-5-13 22:04
0
雪    币: 677
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2011-5-13 22:08
0
雪    币: 576
活跃值: (1163)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
V2.09把我吸引进来了
2011-5-13 22:22
0
雪    币: 388
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
  恐怖的F9
2011-5-13 22:59
0
雪    币: 3361
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
vmp都出2.09的了?
2011-5-14 09:07
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
新手来学习
2011-5-14 09:41
0
雪    币: 65
活跃值: (171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个作都者VMP2.09加壳的强度太低了,只要到了OEP一切都搞定了,呵呵!
2011-5-14 10:00
0
雪    币: 4902
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
话说
Demo 版加的还是正式版?
2011-5-14 10:31
0
雪    币: 4381
活跃值: (4373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
加得真不专业... 加壳的淫真是浪费vmp了 加出这个水平. 去用upx吧
2011-5-14 10:32
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哇,我以为发现了jj,结果发现了F9,蛋 疼不止
2011-5-14 11:04
0
雪    币: 435
活跃值: (355)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习一下也好
2011-5-14 11:27
0
雪    币: 630
活跃值: (570)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
额 F9马上跑飞了 - -
是vmp 真的是vmp吗??
2011-5-14 11:37
0
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
厉害,没想到esp定律对vmp也适用。
2011-5-14 13:04
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
IAT 木有处理
2011-5-14 13:52
0
雪    币: 12332
活跃值: (5108)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16

这F9就跑飞了
2011-5-14 15:49
0
雪    币: 386
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
hhh..........
2011-5-14 17:02
0
雪    币: 10
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
哇哈 ······我看不懂啊
2011-10-20 19:49
0
雪    币: 130
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
请作者将你要的飞鸽和加密的飞鸽传上来,以方便大家研究。你的那个飞鸽网上找不到。找到的都是20多MB的
2012-4-20 23:10
0
雪    币: 185
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
杂会这么简单,F9直接运行了,哪来XX!
2012-4-23 17:53
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
嗯   F9跑飞  有可能是OD 设置问题  vmp2.0.9  应该比 vmp 2.0.8 有难度点吧?
2012-5-11 20:39
0
雪    币: 59
活跃值: (1501)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
呵呵,能把vmp当upx用也是一种本事。
2012-5-13 16:15
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
这种没有IAT 没有代码翻转处理的,正常的脱壳流程就完全可以,没什么意思!
2012-5-13 19:22
0
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
楼主大牛,膜拜。。。
2012-5-14 07:06
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
这个VMP没偷你的代码吗?
2012-5-28 16:34
0
游客
登录 | 注册 方可回帖
返回
//