提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:李显亮|2020-07-27 14:43:53.270|阅读 385 次
概述:.NET Reactor是一个功能强大的代码保护和软件许可系统,适用于为.NET Framework编写的软件,并支持生成.NET程序集的所有语言。想了解.NET Reactor都有哪些保护机制,你需要知道这些含义。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
.NET Reactor是一个功能强大的代码保护和软件许可系统,适用于为.NET Framework编写的软件,并支持生成.NET程序集的所有语言。
.NET Reactor迎来了久违的版本更新,进入v6.3.0.0全新时代!支持Blazor保护,支持.NET 5 Preview 4保护,允许创建.NET Core 3.x单个文件应用程序,改进了许多功能性能,等等10个功能的更新和改进,还没有体验的朋友可点击下方按钮下载试用。
本文将介绍.NET Reactor的功能和保护机制中的重要名词含义,了解了这些才能更好的掌握功能使用,希望对您有所帮助。
启用此选项可创建.NET Core 3.x单个文件应用程序。可执行文件是自解压缩的,包含运行应用程序所需的所有依赖项(包括本地依赖项)。首次运行该应用程序时,该应用程序将根据应用程序名称和构建标识符提取到目录中。再次运行该应用程序时,启动速度更快。除非使用了新版本,否则该应用程序无需再次提取自身。
此选项将启用受保护程序集中的反调试器检测。如果连接了调试器,当前进程将终止。
此功能可防止使用反编译工具进行反编译。反编译工具(如ILDASM-Microsoft中间语言反汇编程序)将报告它们无法打开受保护的程序集。
此选项可防止黑客工具篡改/修改受保护的程序集。在运行时,受保护的程序集将执行几个二进制完整性检查。
通用中间语言(CIL)是一组与平台无关的指令,由特定于语言的编译器(C#,VB.NET ...)从源代码生成。CIL是独立于平台的,并且可以在任何公共语言基础架构支持的环境(例如.NET运行时或Mono)上执行。CIL和其他元数据的存储方式必须遵循特定的标准(ECMA-335)。这样,.NET Reflector或ILSpy之类的工具就可以读取CIL指令并将代码转换回其源语言(C#,VB.NET ...)。
代码虚拟化将CIL代码转换为一组随机指令,这些指令在运行时由我们自己的虚拟机解释。由于没有正确解释新指令集的标准化程序,因此无法重建原始CIL指令。因此,虚拟代码无法转换回其源语言。
由于虚拟化方法的性能大大降低,因此代码虚拟化应仅应用于选定的方法。要启用代码虚拟化,需要使用以下属性装饰相应的方法:
用法示例
之前
之后
其余的存根代码将执行虚拟机。
.NET Reactor可以通过压缩和加密托管资源来提高保护和程序集的大小。在运行时,需要时,资源将自动解压缩和解密。
控制流混淆将方法内部的代码转换为意大利面条代码,而这又保留了代码的功能,这使得人眼和反编译器很难遵循程序逻辑。反编译器无法将意大利细面条代码反编译回原始源代码。
.NET Reactor接收程序集(在“ 其他文件”中列出)并将其嵌入到Main Assembly中。
在可执行文件中嵌入依赖项可以帮助您部署和维护软件,因为您可以将所有依赖项嵌入到一个有效的可执行文件中。在运行时,嵌入式依赖项直接从内存中加载,而不提取到硬盘驱动器中。.NET Reactor对嵌入式程序集不施加任何保护。如果要保护嵌入式程序集,则应将其与主程序集合并或先对其进行保护。
如果只希望在有限的时间内使用受保护的程序集,请启用Evaluation_Lock。在“ Runtime_Minutes”(分钟)(分钟)和“ Trial_Days”(天)之间选择。此锁将您的软件转变为“试用版”。
如果要将许可证文件链接到特定计算机,请启用“硬件锁定” 。创建的许可证文件仅在具有定义的硬件ID的计算机上有效。要获取硬件ID,请使用.NET Reactor SDK库License.dll。
隐藏对外部和/或内部方法的调用。方法调用通过在运行时动态构建的委托进行重定向。通常,仅隐藏外部方法调用就足够了。
之前:
然后:
最后(混淆处理->命名约定->隐身):
有效的许可证文件将您锁定的.NET软件解锁。要创建有效的许可证文件,必须加载正确的主密钥。它必须与用于保护软件的主密钥相同。可以通过许可证管理器创建许可证文件。
要对跟踪痕迹进行模糊处理,需要一个映射文件。映射文件包含所有混淆名称的翻译。该堆栈跟踪deobfuscator需要映射文件重建原始的堆栈跟踪。
启用此选项可将多个部件合并到单个目标部件中。.NET Reactor将您的程序集(“ 主程序集”和“ 其他文件中列出的程序集”)合并到一个目标程序集中。
合并依赖项可以改善对软件的保护。合并的依存关系不再对用户可见,并且由于它们是主装配的真实部分,因此它们也将自动受到保护。如果主程序集是可执行文件,则目标程序集仍然是具有相同入口点的可执行文件。
第三方库通常已经受到保护,因此不建议将它们与主程序集合并。如果在合并装配件时遇到问题,则应将其嵌入到主装配件中。
.NET Reactor能够为您的应用程序生成本机x86 EXE文件存根。这样就无法在反编译器中直接打开受保护的应用程序。反编译器将受保护的应用程序识别为本地EXE文件。
NecroBit是一种强大的保护技术,通过用加密代码替换方法中的CIL代码,可以为您的敏感知识产权提供全面保护。这样就不可能对方法源代码进行反编译/反向工程。
除了源代码保护,.NET Reactor还提供了彻底的类和成员混淆,并辅之以不同的排除方案,在混淆名称中使用了不可打印的字符,甚至是增量混淆,它们始终为类型和成员名称生成相同的混淆字符串。
模糊处理类型和成员名称。混淆过程将程序转换为等效程序,使反向工程更加困难。这种方法的优点是它可以在标准硬件上运行,并且无需对虚拟机或可用的解释器进行任何更改。
.NET Reactor完全支持声明式混淆。声明式混淆允许您直接定义哪些类型和成员应排除在混淆之外。这可以通过在源代码中使用自定义属性System.Reflection.ObfuscationAttribute来完成。.NET Reactor自动检测该属性,并从混淆中排除相应的类型和成员。
混淆节点:
与本机EXE文件功能和NecroBit结合使用,.NET Reactor能够将托管方法转换为REAL x86本机代码。只有不影响运行时和平台行为的方法(大多数是诸如属性getter / setters之类的小方法)才会转换为本机代码。本质上,此功能具有内置保护,可防止组件修改。
字符串加密使黑客难以理解您的代码并尝试对程序集进行代码补丁,因为他将无法识别消息文本或其他有用的字符串,从而使识别补丁代码的难度变得更大。此功能具有内置的防止组装操作的保护。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢