防止代码被反编译,来看看都有哪些工具可以帮你

浪尽此生 提交于 2020-12-04 13:33:42

曾经有人说.NET是最容易被反编译的开发语言。其实现如今,在常见的开发语言中,无论是.NET还是Java,甚至人气排名第一的JavaScript都存在容易被反编译的风险,如何保护代码不受窃取,如何应用程序不受破坏,是所有开发人员最为关系的话题。

或许在软件开发的过程中,工程师会寻找一些开源产品以节约成本,但在实际应用、分发授权、许可控制的过程中,仍不希望自己的成果被窃取。“代码保护”、“软件保护”等等这些词的热度一直经久不衰。

其中,最常见的保护方式有“代码混淆”、“代码虚拟化”以及“软件加密”。

  • 代码混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。
  • 虚拟化将指令编译为虚拟代码,放在指定虚拟机中运行,目前对指令有一定的格式要求,有的函数可能不能被保护。
  • 软件加密将代码块作为数据,用许可加密函数存储,程序执行到该函数时验证许可并解密,内存中不会暴露完整的代码块,目前有的函数不可添加到保护中。

无论哪种方法,必然会借助工具来实现,接下来咱们就一起来聊聊软件代码保护的那些工具。这里说几个热议度比较高的,其他欢迎在评论区补充~

针对软件保护

先说说软件加密保护,也有人会说是加壳保护,加壳实际上就是一种加密方式。这里我们说说VMProtect、WinLicense和Themida。

产品名 界面 亮点 保护方式 价格参考

软件加密混淆保护工具

VMProtect

虚拟化,突变以及涉及应用程序代码突变和后续虚拟化的组合保护

支持的平台和操作

支持从Windows 2000开始的Windows家族的32/64位操作系统,以及从版本10.6开始的Mac OSX
  • 字节码
  • 虚拟化
  • 虚拟机
  • 水印
  • 突变
  • 混淆
  • 保护器
  • 入口点
  • 打包
  • 加密

参考价:1176元起

软件加密保护器

Themida

Themida®使用SecureEngine®保护技术,该技术以最高优先级运行时,实现了前所未有的保护技术,以保护应用程序免遭高级软件破解。

SecureEngine®击败了当前可用于受保护应用程序的所有破解工具,它将确保受保护应用程序仅在安全环境中运行。

  • 反调试器技术,可检测/欺骗任何类型的调试器
  • 适用于任何Ring3和Ring0自卸车的反内存自卸车技术
  • 每个受保护的应用程序中都有不同的加密算法和密钥
  • 避免重建原始导入表的反API扫描程序技术
  • 目标应用程序中的自动反编译和加扰技术
  • 特定代码块中的虚拟机仿真
  • 先进的Mutator引擎
  • SDK与保护层通信
  • 任何静态和交互式反汇编程序的反分解技术
  • 具有超过50.000个排列的多个多态层
  • 先进的API包装技术
  • 针对文件和注册表监视器的反监视器技术
  • 在真实指令之间随机插入垃圾代码
  • 专用保护线
  • 高级线程网络通信
  • 目标应用程序中的抗内存修补和CRC技术
  • 变形引擎扰乱原始指令
  • 高级入口点保护
  • 目标应用程序中的动态加密
  • 在真实指令之间插入反跟踪代码
  • 高级防断点管理器
  • 目标应用中的实时保护
  • 压缩目标应用程序,资源和保护代码
  • 反“调试器隐藏器”技术
  • 保护码完全变异,避免模式识别
  • 目标应用中的实时仿真
  • 在目标应用程序中插入智能保护代码
  • 随机内部数据重定位
  • 在受保护的应用程序中自定义对话框的可能性
  • 命令行支持

参考价:1486元起

软件加密保护&许可控制器

WinLicense

WinLicense作为软件保护者

WinLicense使用SecureEngine®保护技术,该技术能够以最高优先级运行其代码,以实现前所未有的保护技术。这样可以保护任何具有最高安全级别的应用程序。

WinLicense作为许可证管理器

WinLicense提供了最广泛的选项和功能,可以为应用程序创建试用版和注册版。开发人员可以与WinLicense通信,以通过完整的SDK检查其应用程序的试用版或注册版的当前状态。WinLicense还提供了自动处理所有可能情况的功能。

  • 反调试器技术,可检测/欺骗任何类型的调试器
  • 适用于任何Ring3和Ring0自卸车的反内存自卸车技术
  • 每个受保护的应用程序中都有不同的加密算法和密钥
  • 避免重建原始导入表的反API扫描程序技术
  • 目标应用程序中的自动反编译和加扰技术
  • 特定代码块中的虚拟机仿真
  • 先进的Mutator引擎
  • SDK与保护层通信
  • 任何静态和交互式反汇编程序的反分解技术
  • 具有超过50.000个排列的多个多态层
  • 先进的API包装技术
  • 针对文件和注册表监视器的反监视器技术
  • 在真实指令之间随机插入垃圾代码
  • 专用保护线
  • 高级线程网络通信
  • 目标应用程序中的抗内存修补和CRC技术
  • 变形引擎扰乱原始指令
  • 高级入口点保护
  • 目标应用程序中的动态加密
  • 在真实指令之间插入反跟踪代码
  • 高级防断点管理器
  • 目标应用中的实时保护
  • 压缩目标应用程序,资源和保护代码
  • 反“调试器隐藏器”技术
  • 保护码完全变异,避免模式识别
  • 目标应用中的实时仿真
  • 在目标应用程序中插入智能保护代码
  • 随机内部数据重定位
  • 在受保护的应用程序中自定义对话框的可能性
  • 命令行支持

参考价:2922元起

 

如果是保护知识产权的角度,脱离混淆的代码加密是伪命题,无论怎么加密,如果不加以混淆手段保护,都没有意义。如同传统软件的加壳保护,代码混淆给底层的加密算法加了最基本的保障,所以说,混淆和加密一定是相辅相成的。

针对代码保护

再说说代码混淆保护器,.NET、Java以及JavaScript代码混淆是目前热议度较高的。.NET混淆器可试试Dotfucator、.NET Reactor;Java混淆器可试试ALLATORI JAVA OBFUSCATOR、DashO;JavaScript混淆器可试试JSDefender;当然也有针对x32和x64本机PE/ELF/Mach-O文件中代码混淆器Code Virtualizer。

产品名 界面 亮点 保护方式 价格参考

.NET代码保护和软件授权系统

.NET Reactor

通过多种方法来防止反编译,这些方法会将.NET程序集转换为任何现有工具都无法反编译的进程。

除了行业领先的知识产权保护之外,.NET Reactor还提供了强大的选项,通过使用丰富的试用版和完整版本锁来执行许可条款,以确保您的收入流。

支持的平台和操作

  • 支持的平台:Windows 98,ME,NT,2000,XP,Vista,7、8 / 8.1、10,Server 2003-2019
  • 支持的平台(单声道):Linux-SUSE,Novell,Red Hat,Mac-OS X,Solaris,BSD-OpenBSD,FreeBSD,NetBSD
  • 支持的平台(Xamarin):Android,Apple iOS,Mac
  • 知识产权保护
    • NecroBit保护
    • 本机代码生成
    • 代码虚拟化
    • 混淆
    • 控制流混淆
    • 隐藏方法调用(动态代理)
    • 字符串加密
    • 防篡改
    • 反调试
    • 资源加密与压缩
    • 依赖合并
    • 保护完整的应用程序和库(dll)
  • 强大的许可系统
    • 创建软件的试用版
      • 设定有效期限
      • 将使用限制为安装后固定的天数
      • 使用次数限制
      • 每次调用的使用时间限制为不超过设定的分钟数
      • 限制试用版功能
    • 轻松将您的试用版转换为完全许可的版本
    • 许可您的软件
      • 永久(不过期许可证)
      • 按时间段(即租用软件
      • 按用途数量(即软件即服务)
  • 软件开发工具包
    • 将许可证检查集成到您的程序集中并扩展许可证功能
    • 通过定制扩展扩展许可功能。
  • 部署方式
    • 创建.NET Core单个文件应用程序包

参考价:1515元起

.NET混淆和运行检查保护器

Dotfucator

提供了多层保护:混淆的多种形式(重命名,字符串加密,控制流等)以及活动的运行时检查(篡改,调试,root等)。

 

支持的平台和操作系统

 

.NET Framework 1.0和更高版本,.NET Core 2和更高版本,.NET 5和Mono的应用程序,并有针对性地支持包括Xamarin,UWP,ASP.NET,.NET Standard等在内的各种框架。Dotfuscator的构建组件可以在Windows,Mac和Linux上的.NET Framework 4.7.2 + 、. NET Core 2.1+和Mono 6+上运行。Config Editor需要Windows上的.NET Framework。
  • 重命名
  • 控制流
  • 字符串加密
  • 水印
  • 修剪
  • 链接
  • 篡改检测与防御
  • 调试检测与防御
  • 保质期
  • Xamarin.Android的根检查

-

Java混淆和运行检查保护器

DashO

提供了多层保护:混淆的多种形式(重命名,字符串加密,控制流等)以及活动的运行时检查(篡改,调试,root等)。

 

支持的平台和操作系统

 

Windows,MacOS / OS X,Unix,Java 1.3-1.8、9-14,Java模块,Kotlin,Android 4.1+(API 16 +),J2EE,WAR,J2ME,Spring,Gradle,APK
  • 重命名
  • 控制流
  • 字符串加密
  • 资源加密
  • 水印
  • 删除
  • 入侵侦测与防御
  • 调试检测和防御
  • 使用支票
  • 根检查对于安卓
  • 模拟器检查对于安卓
  • 挂钩检查对于安卓
  • 保质期
-

第二代Java代码混淆器

ALLATORI JAVA OBFUSCATOR

- Allatori不仅会混淆,还会最大程度地减少应用程序大小并提高速度,并且您和您的团队以外的任何人都无法读取您的代码。作为每个现代Java混淆器,Allatori具有完整的水印功能,从而有可能为您的软件提供适当的许可!
  • 名称混淆        
  • 流程混淆        
  • 调试信息混淆    
  • 字符串加密    
  • 100%防止流行的反编译器          
  • 优化处理        
  • 水印            
  • 增量混淆        
  • 堆栈跟踪实用程序   
  • 生成工具界面     
  • J2ME混淆     
  • Android混淆

参考价:1399元起

JavaScript模糊处理器

JSDefender

-

JavaScript模糊处理技术,包括控制流变平,篡改检测和其他应用内保护转换。

支持的平台和操作系统

JavaScript框架,运行时和捆绑器,包括Angular,Node,React,React Native,Webpack等。

布尔文字/控制台伪装/控制流保护/日期锁定/移除调试器/DevTools阻止/域锁/表达序列混淆/功能重新排序/全局对象隐藏/整数字面量/本地宣言/财产稀疏/属性间接/字符串文字/篡改检测/可变分组保护 -

代码混淆系统

Code Virtualizer

在任何x32和x64本机PE / ELF / Mach-O文件中保护您敏感的代码区域。

适用于Windows,Linux和Mac OS X应用程序

由于.NET应用程序的性质,Code Virtualizer无法保护.NET应用程序中的敏感代码。

  • 通过多个虚拟机进行混淆
  • 为每个受保护的应用程序提供独特的保护
  • 保护任何x32和x64应用程序和设备驱动程序
  • 先进的变异引擎
  • 代码重定位以保护DLL和设备驱动程序
  • 仿真独特虚拟机中的任何Intel x86操作码
  • 每个受保护应用程序的唯一虚拟操作码
  • 与任何压缩机/保护器完全兼容
  • 命令行保护

参考价:795元起

以上就是目前市面上我所了解的软件和代码保护工具,欢迎在评论区补充。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!