代码虚拟化



Safengine提供强大的代码虚拟机保护您的程序免受逆向工程和非法修改。将您的关键代码(x86汇编形式)转换成一个新的随机指令集,只有在嵌入您程序中的虚拟机解释器才能运行。这些虚拟机代码是随机生成的,并且经过高度混淆,确保唯一性。
在虚拟化过程中,您原始代码的执行流程将被重定向,并加入逻辑混淆。虚拟后的代码将用与非(NAND)实现所有的逻辑操作,大部分数学运算也将用加法实现,使得逆向者很难分辨原始指令的功能。此外,最容易被修改并绕过的条件跳转也将被转换成虚拟机的运算代码,从而使破解者无法改变程序走向。
代码虚拟化分三步:
首先,您的代码将被完整分析,以处理器执行的方式分析分支、外部数据参考、空余寄存器、栈桢以及对EFLAGS寄存器的修改。
然后,根据分析的结果,生成一个只包含必要指令的随机指令集表,通过多态代码生成引擎生成与之对应的x86实现代码。
最后,将根据随机指令集表,结合虚拟机内部混淆、常数加密、自效验等功能,生成最终的虚拟机字节码,模拟原始代码的功能。
Safengine的虚拟机的体积可控,兼容各种运行环境,支持保护包括内核驱动在内的应用程序。