vmp3.x Jcc无脑爆破插件

查看 144|回复 10
作者:cpujazz   
最近在研究vmp, 花了2天时间写了个vmp3.x Jcc爆破插件
源程序代码
[Asm] 纯文本查看 复制代码004010A9  /.  55            push ebp
004010AA  |.  8BEC          mov ebp,esp
004010AC  |.  81EC 08000000 sub esp,0x8
004010B2  |.  6A FF         push -0x1
004010B4  |.  6A 08         push 0x8
004010B6  |.  68 06000116   push 0x16010006
004010BB  |.  68 01000152   push 0x52010001
004010C0  |.  E8 CF000000   call 无壳.00401194
004010C5  |.  83C4 10       add esp,0x10
004010C8  |.  8945 FC       mov [local.1],eax                        ;  kernel32.BaseThreadInitThunk
004010CB  |.  68 FC084800   push 无壳.004808FC                         ;  ASCII "123"
004010D0  |.  FF75 FC       push [local.1]
004010D3  |.  E8 2CFFFFFF   call 无壳.00401004
004010D8  |.  83C4 08       add esp,0x8
004010DB  |.  83F8 00       cmp eax,0x0
004010DE  |.  B8 00000000   mov eax,0x0
004010E3  |.  0f94c0        sete al
004010E6  |.  8945 F8       mov [local.2],eax                        ;  kernel32.BaseThreadInitThunk
004010E9  |.  8B5D FC       mov ebx,[local.1]
004010EC  |.  85DB          test ebx,ebx
004010EE  |.  74 09         je short 无壳.004010F9
004010F0  |.  53            push ebx
004010F1  |.  E8 98000000   call 无壳.0040118E
004010F6  |.  83C4 04       add esp,0x4
004010F9  |>  837D F8 00    cmp [local.2],0x0
004010FD  |.  0F84 34000000 je 无壳.00401137
00401103  |.  BB 06000000   mov ebx,0x6
00401108  |.  E8 94FFFFFF   call 无壳.004010A1
0040110D  |.  68 01030080   push 0x80000301
00401112  |.  6A 00         push 0x0
00401114  |.  68 00000000   push 0x0
00401119  |.  68 04000080   push 0x80000004
0040111E  |.  6A 00         push 0x0
00401120  |.  68 FC084800   push 无壳.004808FC                         ;  ASCII "123"
00401125  |.  68 04000000   push 0x4
0040112A  |.  BB 60124000   mov ebx,无壳.00401260
0040112F  |.  E8 54000000   call 无壳.00401188
00401134  |.  83C4 34       add esp,0x34
00401137  |>  8BE5          mov esp,ebp
00401139  |.  5D            pop ebp                                  ;  kernel32.776F347D
0040113A  \.  C3            retn
加了vmp
[Asm] 纯文本查看 复制代码004010A9    55              push ebp
004010AA    8BEC            mov ebp,esp
004010AC    81EC 08000000   sub esp,0x8
004010B2  - E9 5A3D2900     jmp vmp3_5加.00694E11
; 无效代码省略
00401139    C3              retn
下面简单演示一下怎么用的
首先到vm入口停下来
然后单步一下,改变一下eip


O(95Y2(TK6P4Y(1$R~ONPP4.png (54.98 KB, 下载次数: 0)
下载附件
VM入口
2022-1-13 19:35 上传

就可以右键分析了
这个时候有一个jcc,先记录下来


2.png (30.77 KB, 下载次数: 0)
下载附件
分析结果
2022-1-13 19:37 上传

出现了一个错误,这个可以不用管它,直接到OD把异常点运行过去


单步步过异常点.png (33.62 KB, 下载次数: 0)
下载附件
单步步过异常点
2022-1-13 19:40 上传

接下就是记录Jcc,直到走出vm代码
这是我记录的jcc


记录的jcc.png (92.64 KB, 下载次数: 0)
下载附件
记录的jcc
2022-1-13 19:45 上传

现在就可以粗略的判断
最后一个可以直接排除,这个涉及到vmp的原理,这里不多讲,看第一个操作数为40的jcc就行了
现在倒着找Jcc
将eax改成0 (是0改成1,是1改成0)


爆破1.png (17.42 KB, 下载次数: 0)
下载附件
2022-1-13 19:49 上传

运行,发现没反应,这时候去找倒数第二个


爆破2.png (45.26 KB, 下载次数: 0)
下载附件
2022-1-13 19:51 上传

在堆栈发现了一些奇怪的字符串
还是先爆破,将edx改成1
发现还是没反应
继续找倒数第三个00764DC3


爆破3.png (40.35 KB, 下载次数: 0)
下载附件
2022-1-13 19:54 上传

运行,发现弹窗了,这个就是爆破成功了


成功截图.png (59.81 KB, 下载次数: 0)
下载附件
2022-1-13 19:55 上传

结尾
插件使用了udis86+unicorn来跑的代码,
可能会有一些bug,可以回帖来反馈一下
打算后面写vmp2.x 等虚拟化代码爆破

下载次数, 下载附件

wgz001   

牛逼,离全自动破解不远了,期待中
wangxufang520   

看着好厉害,就是看不到,有个VMP 3.2~3.5的壳,还是64位的,有没有大佬试下案例破解的,软件分享如下
hi,这是我用百度网盘分享的内容~复制这段内容打开「百度网盘」APP即可获取 
链接:https://pan.baidu.com/s/13KKXx0Q50jrulVwSJKDXkQ?pwd=1234 
提取码:1234
咔c君   

学习了不错
wapjwsy   

太难了 新手表示看不懂
pizazzboy   

楼主厉害了,谢谢分享。
Bruins77   

厉害了,这个学习一下
kuagnkuangkuang   

厉害,学习一下
tanlini   

这种怎么搞,能否提供一下思路,想挑战一下这么牛皮有加壳。


65.JPG (78.86 KB, 下载次数: 0)
下载附件
2022-1-13 22:07 上传

18296522075   

楼主厉害了,谢谢分享。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部