开发的软件上市前,需要给软件加密,防止被人逆向,反编译出源码。
不同的开发语言,加密方式不同。以 C#开发的软件为例:
需要将软件编译成 exe、dll之后使用加壳工具直接加密。
推荐的加壳工具
VirboxProtector
加密技术
函数虚拟化:将其转换为自定义的虚拟指令,传递到 VBP 的安全虚拟机中执行,这样在内存中任何时刻和任何位置都不会有原始 IL 的存在,防止脱壳及内存 Dump
代码混淆:扰乱原始指令,防止静态分析。代码混淆可将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式。支持对 x86/arm/.net il 系列指令进行混淆
压缩:打包并加密程序中的代码和数据,防止被反编译
JIT加密:加密.NET程序的所有方法的 IL代码,防止被反编译和动态调试
资源加密:加密 .NET 资源,防止资源被提取
调试器检测:勾选此选项后,程序检测到进程被调试时退出进程。
字符串加密:加密代码中的敏感字符串,防止反编译工具直接搜索到相关的函数