代码虚拟化
Safengine提供强大的代码虚拟机保护您的程序免受逆向工程和非法修改。将您的关键代码(x86汇编形式)转换成一个新的随机指令集,只有在嵌入您程序中的虚拟机解释器才能运行。这些虚拟机代码是随机生成的,并且经过高度混淆,确保唯一性。
在虚拟化过程中,您原始代码的执行流程将被重定向,并加入逻辑混淆。虚拟后的代码将用与非(NAND)实现所有的逻辑操作,大部分数学运算也将用加法实现,使得逆向者很难分辨原始指令的功能。此外,最容易被修改并绕过的条件跳转也将被转换成虚拟机的运算代码,从而使破解者无法改变程序走向。
代码虚拟化分三步:
首先,您的代码将被完整分析,以处理器执行的方式分析分支、外部数据参考、空余寄存器、栈桢以及对EFLAGS寄存器的修改。
然后,根据分析的结果,生成一个只包含必要指令的随机指令集表,通过多态代码生成引擎生成与之对应的x86实现代码。
最后,将根据随机指令集表,结合虚拟机内部混淆、常数加密、自效验等功能,生成最终的虚拟机字节码,模拟原始代码的功能。
Safengine的虚拟机的体积可控,兼容各种运行环境,支持保护包括内核驱动在内的应用程序。
运行时保护
传统的软件保护工具将应用程序加密存放并在执行时解密,但在原程序解密后,保护代码与程序没有关联。这类保护可以通过抓取解密后的程序内存轻松的绕过。
Safengine提供了运行时保护,并与您的程序链接在一起,使得您的程序无法离开保护代码正常运行。保护代码将动态检查您的程序内存是否被修改,如果发现修改将立即中止程序运行。同时还会实时监视系统环境,及时检测调试破解工具。
软件授权
Safengine提供内置的授权系统,您无需修改任何代码,即可通过它控制您的软件授权。您可以通过限制运行时间、使用次数、过期日期、机器码绑定等等授权限制来控制软件试用。 Safengine使用强加密算法保证授权模块的安全,如果没有您提供的合法授权,破解这需要数年时间穷举您的软件的解密密钥。
Safengine NetLicensor
在Safengine Licensor的基础上,我们推出了基于网络的授权验证平台:
Safengine NetLicensor
它由三部分组成:
Safengine Code Protection 软件代码保护(代码变形、虚拟化)
Safengine Licensor本地授权认证系统
Safengine NetLicensor网络授权验证
网络授权验证
受Safengine NetLicensor保护的应用程序,在启动时会连接NetLicensor服务器,验证授权的有效性,授权限制将以服务器时间为准,确保软件试用时间的准确可控。
Safengine NetLicensor解决了几个软件授权中的难题:
合法授权被恶意泄露
客户刻意修改系统时间
多人共享同一个授权
需要即时即刻吊销授权
Safengine NetLicensor采用了广泛使用的MySQL作为数据库后台,可以轻松整合到现有的服务器系统中,NetLicensor服务端采用了高效稳定的IOCP网络层架构,并在Safengine系列产品的网络验证系统中得到了充分的测试。