您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > .NET

.NET已经步入5.0时代,这些代码保护软件需要知道

时间:2020-12-08 13:50:22  来源:  作者:

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

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

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

混淆:利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。

虚拟化:将指令编译为虚拟代码,放在指定虚拟机中运行,目前对指令有一定的格式要求,有的函数可能不能被保护。

加密:将代码块作为数据,用许可加密函数存储,程序执行到该函数时验证许可并解密,内存中不会暴露完整的代码块,目前有的函数不可添加到保护中。

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

(本文篇幅较长,建议收藏阅读)

针对软件保护

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

VMProtect——软件加密混淆保护工具

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

.NET已经步入5.0时代,这些代码保护软件需要知道

 

支持的平台和操作

支持从windows 2000开始的Windows家族的32/64位操作系统,以及从版本10.6开始的mac OSX

保护方式

  • 字节码
  • 虚拟化
  • 虚拟机
  • 水印
  • 突变
  • 混淆
  • 保护器
  • 入口点保护
  • 打包
  • 加密

 

Themida——软件加密保护器

.NET已经步入5.0时代,这些代码保护软件需要知道

 

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

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

保护方式

  • 反调试器技术,可检测/欺骗任何类型的调试器
  • 适用于任何Ring3和Ring0自卸车的反内存自卸车技术
  • 受保护的应用程序中都有不同的加密算法和密钥
  • 避免重建原始导入表的反API扫描程序技术
  • 目标应用程序中的自动反编译和加扰技术
  • 特定代码块中的虚拟机仿真
  • 先进的Mutator引擎
  • SDK与保护层通信
  • 任何静态和交互式反汇编程序的反分解技术
  • 具有超过50.000个排列的多个多态层
  • 先进的API包装技术
  • 针对文件和注册表监视器的反监视器技术
  • 在真实指令之间随机插入垃圾代码

 

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

.NET已经步入5.0时代,这些代码保护软件需要知道

 

WinLicense作为软件保护者

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

WinLicense作为许可证管理器

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

保护方式

  • 反调试器技术,可检测/欺骗任何类型的调试器
  • 适用于任何Ring3和Ring0自卸车的反内存自卸车技术
  • 受保护的应用程序中都有不同的加密算法和密钥
  • 避免重建原始导入表的反API扫描程序技术
  • 目标应用程序中的自动反编译和加扰技术
  • 特定代码块中的虚拟机仿真
  • 先进的Mutator引擎
  • SDK与保护层通信
  • 任何静态和交互式反汇编程序的反分解技术
  • 具有超过50.000个排列的多个多态层
  • 先进的API包装技术
  • 针对文件和注册表监视器的反监视器技术
  • 在真实指令之间随机插入垃圾代码

 

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

针对代码保护

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

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

.NET已经步入5.0时代,这些代码保护软件需要知道

 

通过多种方法来防止反编译,这些方法会将.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):AndroidApple IOS,Mac
    保护方式
  • 知识产权保护
  • 强大的许可系统
  • 软件开发工具包
  • 部署方式

 

DashO——Java混淆和运行检查保护器

.NET已经步入5.0时代,这些代码保护软件需要知道

 

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

保护方式

  • 重命名
  • 控制流
  • 字符串加密
  • 资源加密
  • 水印
  • 删除
  • 入侵侦测与防御
  • 调试检测和防御
  • 使用支票
  • 根检查对于安卓
  • 模拟器检查对于安卓
  • 挂钩检查对于安卓
  • 保质期

 

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

.NET已经步入5.0时代,这些代码保护软件需要知道

 

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

支持的平台和操作

.NET Framework 1.0和更高版本,.NET Core 2和更高版本,.NET 5和Mono的应用程序,并有针对性地支持包括Xamarin,UWP,http://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的根检查

 

JSDefender——JavaScript模糊处理器

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

支持的平台和操作

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

保护方式

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

 

Code Virtualizer——代码混淆系统

.NET已经步入5.0时代,这些代码保护软件需要知道

 

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

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

支持的平台和操作

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

保护方式

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

 

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



Tags:.NET   点击:()  评论:()
声明:本站部分内容来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
曾经有人说.NET是最容易被反编译的开发语言。其实现如今,在常见的开发语言中,无论是.NET还是Java,甚至人气排名第一的JavaScript都存在容易被反编译的风险,如何保护代码不受窃取...【详细内容】
2020-12-08   .NET  点击:(3)  评论:(0)  加入收藏
微软今天发布了 .NET 5.0 正式版。本次版本更新幅度很大,而且自首个预览版发布以来微软已经进行了广泛的内部部署,除了在 .NET 5.0 上运行 .NET 网站外,Bing 也在使用这个新平...【详细内容】
2020-11-11   .NET  点击:(6)  评论:(0)  加入收藏
我们经常使用的各类网站和App均会涉及注册、登录和修改密码等功能,登录系统后,有些功能会提示没有权限,甚至有些位置我们无法访问,这些都是系统权限和认证的体现。我们从本章及...【详细内容】
2020-11-10   .NET  点击:(2)  评论:(0)  加入收藏
如果是以前,想要用.net 发起一个Http请求真的非常复杂,需要写好几十行代码才行,现在好了,开源社区里面有几款不错的HTTP请求组件,这里我推你进来看看,这里的Demo我们就请求一个免...【详细内容】
2020-10-20   .NET  点击:(4)  评论:(0)  加入收藏
自从.NET 5 发布以来,许多人都在问它对.NET Standard 意味着什么,想知道它是不是还能吸引主流开发人员的兴趣。在本文中,我将介绍.NET 5 是如何改善代码共享并替代.NET Standar...【详细内容】
2020-10-16   .NET  点击:(6)  评论:(0)  加入收藏
今天上午基于.net core做了一个简单的Web Api的Demo,练习一下IIS部署,本以为很简单,没想到遇到了很多坑,折腾了大半天才部署成功,简单记录一下,以供大家参考。1、发布项目 2、下...【详细内容】
2020-09-27   .NET  点击:(10)  评论:(0)  加入收藏
之前我分享过一款基于ASP.NET MVC + Layui 的通用后台快速开发框架elight.mvc,受到了很多朋友的关注。今天我将给大家分享一款基于.NET Core最新版+Bootstrap的通用后台快速...【详细内容】
2020-09-21   .NET  点击:(100)  评论:(0)  加入收藏
Orchard CMS是微软在2011年发布的,当时使用了微软最新的ASP.NET MVC3技术,Orchard旨在帮助用户创建和管理网站。之前研究过Orchard CMS项目的朋友,可能都会有一种感觉,项目太多,...【详细内容】
2020-09-14   .NET  点击:(83)  评论:(0)  加入收藏
背景  最近入职了一家新公司,公司各个方面都让我非常的满意,我也怀着紧张与兴奋的心情入职后,在第一天接到了领导给我的第一个任务——把整个项目的依赖引用重新整...【详细内容】
2020-09-10   .NET  点击:(6)  评论:(0)  加入收藏
自从HttpClient诞生依赖,它的使用方式一直备受争议,framework版本时代产生过相当多经典的错误使用案例,包括Tcp链接耗尽、DNS更改无感知等问题。有兴趣的同学自行查找研究。在....【详细内容】
2020-08-19   .NET  点击:(15)  评论:(0)  加入收藏
介绍Hangfire是.net平台和.net core平台下的一个优秀的开源定时任务框架,它可以方便轻松地将定时任务集成到你的程序中,而且功能强大,。支持CPU和I / O密集型,长期运行和短期...【详细内容】
2020-07-16   .NET  点击:(10)  评论:(0)  加入收藏
在渗透测试中,有些工具的运行(例如高版本的Powershell)需要依赖Microsoft .NET Framework 4.0的环境。 而默认配置下,Win7不支持Microsoft .NET Framework 4.0。为了保证工具...【详细内容】
2020-07-03   .NET  点击:(9)  评论:(0)  加入收藏
使用vs创建.net core 控制台项目 创建完成,点击发布 配置linux运行时,配置完成后发布。 将发布的文件放置到linux服务器上 在linux服务器上 安装 dotnet运行环境在linux服务器...【详细内容】
2020-06-30   .NET  点击:(24)  评论:(0)  加入收藏
0. 前言这一篇我们将介绍一下.net core 的加密和解密。在Web应用程序中,用户的密码会使用MD5值作为密码数据存储起来。而在其他的情况下,也会使用加密和解密的功能。常见的加...【详细内容】
2020-06-22   .NET  点击:(5)  评论:(0)  加入收藏
很多人可能知道使用.NET Core可以开发跨平台(包括Windows,Linux、MacOS)的App,但知道在Linux下使用.NET Core可以开发三维程序的恐怕就很少了。本文通过借助.NET三维绘图控件,可...【详细内容】
2020-06-19   .NET  点击:(3)  评论:(0)  加入收藏
.NET 生态  2016年微软发布了.NET Core 1.0 迄今已有好几年了,但是很多.NET程序员也一定有以下疑问: .NET Core到底是不是.NET 的下一个版本?还是说只是.NET支持跨...【详细内容】
2020-06-11   .NET  点击:(1)  评论:(0)  加入收藏
NET确实是一个重要的应用程序开发平台,因为它安全、健壮、易于学习和实现。开发人员正在广泛使用.NET框架构建Web应用程序,甚至将基于遗留编程的应用程序现代化为基于.NET的应...【详细内容】
2020-05-28   .NET  点击:(8)  评论:(0)  加入收藏
本文介绍一个.NET开源工具类库项目,包含一些常用的操作类,大都是静态类,加密解密,反射操作,硬件信息,字符串扩展方法,日期时间扩展操作,大文件拷贝,图像裁剪,验证码等常用封装。1项...【详细内容】
2020-05-05   .NET  点击:(9)  评论:(0)  加入收藏
合格的web后端程序员,除搬砖技能,还必须会给各种web服务器启用Https,本文结合ASP.NET Core部署模型聊一聊启用Https的方式。温故知新目前常见的Http请求明文传输,请求可能被篡改...【详细内容】
2020-03-26   .NET  点击:(11)  评论:(0)  加入收藏
ASP.NET Core设计初衷是开源跨平台、高性能Web服务器,其中跨平台特性较早期ASP.NET是一个显著的飞跃,.NET现可以理直气壮与JAVA同台竞技,而ASP.NET Core的高性能特性更是成为致...【详细内容】
2020-01-06   .NET  点击:(4)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条