热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

代码混淆_.Net代码混淆工具DotNetReactor

ShareItModuleGenerator     -项目配置共享工具

  • ShareIt Module Generator         - 项目配置共享工具



  • 保护配置

        配置需要保护程序的方式(相当于配置模板)


    帮助


    任务面板--相当于快捷操作面板

    .Net代码混淆工具DotNetReactor


    主面板

    主面板包括加载程序集、设置、许可证管理、.net方法查看。


    加载程序集:


    .Net代码混淆工具DotNetReactor

    整合的功能在这里配置,必须要有一个主程序集,就是把附加的程序集都整合到这个程序集中。附加的程序集可以以嵌入的方式或者整合的方式。若选择整合的方式,建议勾选仅整合(不保护)。

    设置选项中英对照:

    NecroBit:把程序集转为非托管代码(就是加一个壳,运行时还是必须的。)

    Native Exe File:生成本机 exe 文件

    Anti ILDASM:防止反编译

    Obfuscation:混淆

    Create Mapping File:创建地图文件

    Anti Tampering:防篡改

    String Encryption:加密字符

    Compress & Encrypt Resources:压缩并加密资源

    Control FlowObfuscation:混淆控制流级别设置

    如果不知道该勾选那几个net reactor提供了一些预设的选项(分别是各类型的标准及最强的加密方案,点击选用即可。):

    .Net代码混淆工具DotNetReactor

    下面的快速设置就是整合保护的一些配置。


    设置:

    .Net代码混淆工具DotNetReactor

    设置又分为常规设置,保护设置,软件限制设置,及弹出框界面设置


    常规设置

    主要包括压缩配置,界面风格配置,生成目标文件配置,启动是否显示加载界面配置。想要知道配置的具体功能可以用鼠标点击配置,下面的说明面板会出现对应的说明。

    Automatic Exception Handling - 自动捕获错误

    Compression  - 压缩文件减少占用空间,网络环境下还可以减少带宽

    Show Loading Screen  - 保护过的文件启动是否显示加载进度条(因为保护过的文件启动时会先执行.net reactor注入的代码,包括查找证书等)

    Digital Certificate - 数字证书保护

    Enable Visual Styles - 是否启用系统界面风格

    Force Admin Privileges - 是否需要系统管理员权限运行

    Merge Assemblies - 是否允许整合dll

    Embed Assemblies - 是否允许嵌入dll

    Strong Name Key Pair File - 强签名程序集

    Target File - 生成目录


    保护设置

    主要配置软件的保护选项

    NecroBit 功能是防止程序被反编译(比如.net reflector),但不支持.net Compact Framework

    Anti Tampering - 防止黑客利用工具修改你的软件,运行前会进行二进制完整性检查

    Resource Encryption & Compression- 压缩和加密托管资源,运行时会自动解压和解密资源

    Suppress Decompilation / Anti ILDASM- 防止反编译和反汇编

    Native EXE File - 生成一个本地x86 exe文件作为根嵌入程序防止反编译

    Pre-JIT Methods  - 通过Native EXE File 和NecroBit插件,将一些小方法比如getters/setters直接转化成机器代码,防止程序集被修改

    NecroBit- 用加密的代码替换CIL代码,阻止反编译

    Obfuscation - 替换变量名称,方法名称等来混淆代码



    • Create Mapping File - 允许创建混淆过字段对应的未混淆字段的映射文件


    • Enabled - 混淆非punlic的类和成员的名称


    • Obfuscate Public Types  - 混淆所有类型和成员的名称


    • Incremental Obfuscation - 智能地规定混淆后的名称


    • Exclusions  - 排除某个类型,不进行混淆


    • Use Unprintable Characters - 使用乱码进行混淆


    Control Flow Obfuscation - 一种混淆方式

    String Encryption - 加密字符串

    Strong Name Reomoval Protection - 强命名保护


    软件限制设置

    此设置就是限制软件的使用。包括限制使用次数,限制使用时间等。当达到限制条件时,就会弹出过期信息,需要许可证

    注意: 此配置对 Compact Framework, Silverlight 和Mono无效

    Expire When All Expired -是否全部文件过期时,才停止软件使用

    Inbuilt Lock - Evaluation Period-限制软件持续使用时间

    Inbuilt lock - Expiration Date -限制软件使用天数

    Inbuilt Lock -  Number of Uses-限制软件使用次数

    Max Number Of Instances -限制软件并发数量(同一台机器)

    Nag Screen -若没有许可证,软件启动时提示相关相关限制信息,比如“您已使用1次,最多使用10次”

    Run Another Process After Expiration  -过期是否执行其他程序,通常运行付款程序

    Run Without License File-是否需要许可证

    Shut Down Process After Expiration -当过期时是否关闭进程

    Static License FileName-设置许可证的后缀名,当为空时默认搜索*.license 的许可证,为防止冲突不允许以.LIC为后缀名。


    弹出界面设置

    软件使用到期时弹出提示的界面框相关配置,如下图

    .Net代码混淆工具DotNetReactor


    证书管理

    .Net代码混淆工具DotNetReactor

    当客户端软件使用过期时,此时就需要购买许可证文件。此界面就是用于生成许可证。生成许可证也可以配置,可以设置许可证的过去时间,使用次数,是否针对特定的电脑等。

    其中针对特定的电脑需要使用HID工具获取特定电脑硬件对应的编码,然后再进行配置,HID工具在TOOLS->Hardware ID Tool Generator ,会生成HID.exe,然后运行HID.exe 会在同目录下生成一个硬件对应的编码文件。


    .net方法查看

    .Net代码混淆工具DotNetReactor

    最后点右侧的Protect就完成了混淆保护。会在你保护的项目同级文件夹下生成一个XXXXXX_Secure文件夹,里面的文件就是已经混淆过的。

    .Net代码混淆工具DotNetReactor

    一个小技巧:

    Help菜单里面有各个版本VS的Add-In,我用的VS2013先安装上,然后打开VS【工具】菜单会多出一个.Net Reactor:

    .Net代码混淆工具DotNetReactor

    选择你要保护的项目,勾选Enabled,当你生成或者运行项目时,net reactor就同时完成了它的工作。详细的功能是通过Command Line Parameters完成的,至于具体的命令行参数可以在chm里面找到






    长按 扫一扫


    关注我


    工控码农Zero











    推荐阅读
    • 未定义的打字稿记录:探索其成因与解决方案 ... [详细]
    • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
      基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
    • WinMain 函数详解及示例
      本文详细介绍了 WinMain 函数的参数及其用途,并提供了一个具体的示例代码来解析 WinMain 函数的实现。 ... [详细]
    • Halcon之图像梯度、图像边缘、USM锐化
      图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
    • 单片微机原理P3:80C51外部拓展系统
        外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
    • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
    • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
      本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
    • com.hazelcast.config.MapConfig.isStatisticsEnabled()方法的使用及代码示例 ... [详细]
    • 如何在Java中使用DButils类
      这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
    • 开机自启动的几种方式
      0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
    • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
    • MySQL 函数调用性能优化策略与实践
      MySQL函数调用的性能优化是提升数据库整体效率的关键。本文探讨了MySQL中函数的确定性和不确定性分类,以及如何通过优化这些函数调用来提高查询性能。确定性函数在给定相同输入时始终返回相同的结果,而非确定性函数则可能因环境或时间等因素而返回不同的结果。文章详细介绍了识别和优化非确定性函数的方法,以减少对数据库性能的影响,并提供了实际应用中的案例分析。 ... [详细]
    • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
    • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
    • 在处理大图片时,PHP 常常会遇到内存溢出的问题。为了避免这种情况,建议避免使用 `setImageBitmap`、`setImageResource` 或 `BitmapFactory.decodeResource` 等方法直接加载大图。这些函数在处理大图片时会消耗大量内存,导致应用崩溃。推荐采用分块处理、图像压缩和缓存机制等策略,以优化内存使用并提高处理效率。此外,可以考虑使用第三方库如 ImageMagick 或 GD 库来处理大图片,这些库提供了更高效的内存管理和图像处理功能。 ... [详细]
    author-avatar
    dv18183995666
    海内存知己天涯若比邻
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有