曾经有人说.NET是最容易被反编译的开发语言。其实现如今,在常见的开发语言中,无论是.NET还是Java,甚至人气排名第一的JavaScript都存在容易被反编译的风险,如何保护代码不受窃取,如何应用程序不受破坏,是所有开发人员最为关系的话题。
或许在软件开发的过程中,工程师会寻找一些开源产品以节约成本,但在实际应用、分发授权、许可控制的过程中,仍不希望自己的成果被窃取。“代码保护”、“软件保护”等等这些词的热度一直经久不衰。
其中,最常见的保护方式有“代码混淆”、“代码虚拟化”以及“软件加密”。
- 代码混淆:利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。
- 虚拟化:将指令编译为虚拟代码,放在指定虚拟机中运行,目前对指令有一定的格式要求,有的函数可能不能被保护。
- 软件加密:将代码块作为数据,用许可加密函数存储,程序执行到该函数时验证许可并解密,内存中不会暴露完整的代码块,目前有的函数不可添加到保护中。
无论哪种方法,必然会借助工具来实现,接下来咱们就一起来聊聊软件代码保护的那些工具。这里说几个热议度比较高的,其他欢迎在评论区补充~
针对软件保护
先说说软件加密保护,也有人会说是加壳保护,加壳实际上就是一种加密方式。这里我们说说VMProtect、WinLicense和Themida。
产品名 | 界面 | 亮点 | 保护方式 | 价格参考 |
软件加密混淆保护工具 |
虚拟化,突变以及涉及应用程序代码突变和后续虚拟化的组合保护。 支持的平台和操作 支持从Windows 2000开始的Windows家族的32/64位操作系统,以及从版本10.6开始的Mac OSX |
|
参考价:1176元起 |
|
软件加密保护器 |
Themida®使用SecureEngine®保护技术,该技术以最高优先级运行时,实现了前所未有的保护技术,以保护应 |