当前软件的破解与盗版不仅给使用者带来巨大安全隐患,同时也给软件开发者造成巨大损失。为了对抗逆向工程对软件进行分析、破解,增加攻击者对代码的逆向分析难度,需要一种有效的方法对代码进行保护。指令虚拟化是使用自定义的虚拟指令集替换原生指令集以达到软件保护目的的技术。针对目前的软件保护问题,文章提出一种基于指令虚拟化的代码防护模型,使用自定义的虚拟指令集替换受保护的原生指令,虚拟重构解释执行原关键代码,剥离原生指令与上下文环境之间的显式关联。实验表明,该模型能够有效对抗逆向分析,达到保护软件代码的目的。
Currently, software cracking and piracy not only brings great hidden troubles for user^ safety, but also brings huge losses for software developers. In order to resist the reverse engineering to analyze and crack the software and increase the difficulty of attackers5 reverse analysis to the codes, an effective method to protect the code instructions is needed. Instruction virtualization technology achieves the purpose of software protection by using custom virtual instruction set to replace the native instruction set. According to the present software protection problems, this paper puts forward a code protection model based on the instruction virtualization, using custom virtual instruction set to replace the protected native instructions, reconstructing virtual environment to implement the original key codes by interpretation, and stripping out the explicit association between native instructions and context. Experimental tests show that the model can effectively resist the reverse analysis and achieve the purpose of protecting the software codes.