第四课 VMP壳内爆破

这一课用来演示的软件是文件巴士。

打开网页一搜索,可笑的是搜索到的结果都是破解版,想找个原版的倒费劲了。

好容易找到一个,下好一查壳,还没有。。。

行吧,自己加一个VMP壳开搞。

第四课 VMP壳内爆破

第一步 OD载入程序后,直接F9运行,然后点击”,点击OK

第四课 VMP壳内爆破

这步什么意思呢

因为但凡有壳的程序,都会对数据进行加密。输入这个的目的就是跳到已经解码的部分

然后在已经解码的部分,可以进行搜索错误代码,找关键跳的操作。

但是,并不是所有的程序跳到已解码部分都是输入“401000”,具体怎么区别对待,原理又是什么,后面老师教了再说。这里只是知道这方法不是通吃的就行。

输入后点击OK,汇编窗口代码会变成全是白色的一长串,这时候就是跳到了已经解码的代码段,此时,右键----分析--从模块中删除分析,就回到了通常的反汇编代码显示。

 第二步 搜索错误提示代码和寻找关键跳

软件运行后任意输入假码,看下报错信息,如下:

第四课 VMP壳内爆破

可以看到这里有一行提示:"免费试用版本剩余天数:30天"

下面搜索报错信息中的“注册失败”

在搜索结果中双击,返回反汇编窗口,一步一步向上找,发现有一个JE完整的跳过了注册成功的提示,那这个JE就是关键跳

第四课 VMP壳内爆破

第四课 VMP壳内爆破

这个跳转太长,中间省略了一部分截图

注意第一张图的红圈标识的JE和CALL就是关键跳和关键CALL

第三步 NOP填充

因为这个JE,跳过了注册完成的部分,所以不能让它跳转成功。那就用NOP掉。

在这个JE上下断点,F9运行,程序停在断点,把这个JE使用NOP填充掉,再按F8一步步运行

第四课 VMP壳内爆破

完成。再按F9运行软件,发现“免费试用版和试用天数剩余30天”的提示已经消失了

第四课 VMP壳内爆破

总结:

即使软件加了诸如VMP这种强壳,在不脱壳的情况下,

通过在内部已解码的字段寻找关键跳,然后NOP掉 的方法依然是可以绕过验证的。

不过,这样简单的办法也仅仅是针对对加壳并不了解的软件作者有效吧

上一篇:我喜欢的vs code快捷键for mac


下一篇:eclipse:运行 Android 项目时出现 “Unable to execute dex: Multiple dex files define” 解决方法