1625-5 王子昂 总结《2018年2月17日》 【连续第505天总结】
A. 专用加密软件(3)
B.
虚拟机保护软件
这里的虚拟机指的不是VMWare一类虚拟出较完整的系统的软件,而是类似JVM对指令码进行转换的解释器
组成
一个虚拟机引擎由编译器、解释器和VPU Context(虚拟CPU环境)组成,再配上一个或多个指令系统。
原理
虚拟机运作的时候,先把已知的x86指令根据自定义的指令系统解释成字节码,放在PE文件中,然后将原处代码删掉,改成类似
push bytecode; jmp VstartVM
的代码进入虚拟机执行循环
如果调试者跟踪进入到虚拟机后,是非常难于理解原指令的。解决方法只能是仔细分析虚拟机引擎,完整地找到字节码与原始指令的对应关系
缺点
由于重新建立了解释器,因此每条原始指令都会产生几十甚至数百条的指令运行,导致运行速度延长
因此一般只用于保护关键代码,并且仅在对运行速度不敏感的程序上可用
对抗
VMP由于极其强大的保护能力,被大量使用,因此也对应的有很多人在针对破解它
VMP2.7.x有对应的OD插件来便捷处理
C. 明日计划
脱壳技术