cpujazz 发表于 2022-1-13 19:59

vmp3.x Jcc无脑爆破插件

本帖最后由 cpujazz 于 2022-1-13 20:08 编辑

最近在研究vmp, 花了2天时间写了个vmp3.x Jcc爆破插件

源程序代码
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 ,eax                        ;kernel32.BaseThreadInitThunk
004010CB|.68 FC084800   push 无壳.004808FC                         ;ASCII "123"
004010D0|.FF75 FC       push
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 ,eax                        ;kernel32.BaseThreadInitThunk
004010E9|.8B5D FC       mov ebx,
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 ,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
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

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

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

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

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

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

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

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

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

wgz001 发表于 2022-1-14 08:26

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

wangxufang520 发表于 2023-3-26 08:26

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

咔c君 发表于 2022-1-13 20:18

学习了不错

wapjwsy 发表于 2022-1-13 20:22

太难了 新手表示看不懂

pizazzboy 发表于 2022-1-13 21:33

楼主厉害了,谢谢分享。

Bruins77 发表于 2022-1-13 21:56

厉害了,这个学习一下

kuagnkuangkuang 发表于 2022-1-13 22:01

厉害,学习一下

tanlini 发表于 2022-1-13 22:09

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

18296522075 发表于 2022-1-14 02:04


楼主厉害了,谢谢分享。

lyliucn 发表于 2022-1-14 07:07

楼主厉害了,谢谢分享。
页: [1] 2 3 4 5 6
查看完整版本: vmp3.x Jcc无脑爆破插件