jjyjjy003159 发表于 2023-10-5 20:28

编写VMP爆破插件(下)

原本应该是中期,但是IAT修复打算另起帖子讲,不与jcc爆破合并一起,所以直接到下期,iat还原过几天也会写的
快一个星期了,把下期也写一下
本期开始先补充一点理论知识
关于VMP JCC的知识:
在实际中,我们会采用CMP来判断,JCC使用的ZF位判断跳or不跳
我们vmp也是同样
但是不是使用cmp来判断
vmp利用其它加减法指令代替了原有的CMP指令
而加减法指令被他的万用门实现了,所以我们vm虚拟机中没有直接判断jcc的cmp
cmp eax,0x1000
sub eax,0x1000
这两个指令得到的ZF标志位相同
这里知道了,那么VMP是如何提取出一个EFL中ZF标志位的呢

这是我找的一张图片,里面的ZF前面mask对应的是0x40
那么实际中就需要
and eax,ecx   eax=0x40   ecx=eflangs
然后这一步后,
还要看他前面的Bit#
shr eax,0x6
综合起来就是
and eax,ecx
shr eax,0x6
and   ---eax=0x40   ecx=eflangs
shr    ---如果eax=0x40则eax=0x1   如果eax≠0x40则eax=0x0
然后vmp就通过判断这个执行jcc跳转
所以这就是为什么我的插件可以发现,每一个版本基本都是搜索shr xxx,0x6


然后jcc理论知识补充完毕,开始实战写代码
**** Hidden Message *****

以后会有更多好东西发出来的~


寞叶 发表于 2023-10-5 21:15

希望下次是编写vmp还原插件

卡卡作者 发表于 2023-10-5 20:30

我看看                                                   

fghtiger 发表于 2023-10-5 20:56

希望能增加x64dbg插件

为码盘 发表于 2023-10-5 21:53

先藏为敬

boot 发表于 2023-10-5 22:18

谢谢分享,学习一下。{:5_116:}

Scorpio 发表于 2023-10-5 22:19

巡查员强啊

50311048 发表于 2023-10-5 22:30

希望能增加x64dbg插件。

jjyjjy003159 发表于 2023-10-5 22:34

50311048 发表于 2023-10-5 22:30
希望能增加x64dbg插件。

请问有没有xdbg的插件开发文档和sdk?想找一份开发

sunsan 发表于 2023-10-5 22:49

看看思路 好处理一点
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 编写VMP爆破插件(下)