锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
设为首页
收藏本站
首 页
公司介绍
服务项目
服务报价
维修流程
IT外包服务
服务器维护
技术文章
常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务
→
技术文章
VMProtect 3.09 虚拟机架构浅析
作者: 不详 日期:2017-03-15 18:32:47 来源: 转载
0x00 写在前面
最近两周一直在研究VMProtect相关的东西,发现VMProtect 2.x 被研究的比较充分,FKVMP、Zeus、VMP分析插件1.4等神器也出来了很久。但VMProtect 3 没有在论坛内找到相关的资料,这里写一点简单分析作为抛砖引玉之用。新人第一贴,求论坛的大大们多多鼓励。
根据官方公告,VMProtect 3使用了新的虚拟机架构,本文通过分析自己加虚拟化的简单程序,介绍一下VMProtect 3虚拟机的基本架构,并与VMProtect 2.x进行简单对比。
这里强调一下,本贴只介绍虚拟机架构方面的内容,关于脱壳、IAT恢复、过anti等等请参考其他大佬的文章。
0x01 初步分析
分析的样本是用MASM32编写的小程序,源代码如下:
使用VMProtect 1.81 demo版本对main函数(地址0x40100C)加虚拟化,最快速度,关掉一切其他保护。
这里之所以使用 1.81 demo这么低的版本,主要原因是该版本VMP中的虚拟机代码没有混淆,生成的bytecode也比较规则,没有2.x版本的冗余分支,同时又能被VMP分析插件1.4完美支持,因此非常适合拿来学习VMP虚拟机结构。
加密后文件大小5.00 KB (5,120 字节)
再使用VMProtect 2.12.3版本加虚拟化,选项相同 ,关掉所有保护。
加密后文件大小15.0 KB (15,360 字节)
再使用论坛的VMProtect 3.09版本加虚拟化,选项相同,关掉所有保护。
加密后文件大小516 KB (528,896 字节)
可见VMProtect 3.x版本加密后的代码量有非常大的变化,注意这里关掉了所有保护选项的情况,因此这些多出来的代码不是壳代码,也不是调试器检测的代码,就是实实在在虚拟化后的指令。
这么为什么会多出这么多,这里简单分析一下。
需要用到OD的追踪功能(很好用的功能,但大家经常忽略掉他)
OD分别打开两个文件,Ctrl+F11 跟踪步入,64位电脑先将ntdll.dll和kernel32.dll标记为系统DLL,避免记录到trace中。
跟踪完成后分析两个程序产生trace的区别。
console.vmp_1.81_demo.exe 生成527条trace
用OD统计下指令数(注意在选项中关掉统计时将相邻指令合并的选项),前几条是这样
0x04 写在最后
从今年2月分开始的连续几个月时间可能都要研究虚拟机保护相关的内容,因此也会陆续发些心得笔记上来。
这里希望论坛大大们可以给些指点,好少走点弯路。
也希望其他坛友们能多多回帖讨论。
热门文章
机械革命S1 PRO-02 开机不显示 黑...
联想ThinkPad NM-C641上电掉电点不...
三星一体激光打印机SCX-4521F维修...
通过串口命令查看EMMC擦写次数和判...
IIS 8 开启 GZIP压缩来减少网络请求...
索尼kd-49x7500e背光一半暗且闪烁 ...
楼宇对讲门禁读卡异常维修,读卡芯...
新款海信电视机始终停留在开机界面...
常见打印机清零步骤
安装驱动时提示不包含数字签名的解...
共享打印机需要密码的解决方法
图解Windows 7系统快速共享打印机的...
报修电话:13840665804
QQ:174984393 (联系人:毛先生)
E-Mail:174984393@qq.com
维修中心地址:锦州广厦电脑城
ICP备案/许可证号:辽ICP备2023002984号-1
上门服务区域: 辽宁锦州市区
主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务
技术支持:微软等