热门标签 | 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











    推荐阅读
    • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
    • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
    • Java中包装类的设计原因以及操作方法
      本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
    • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
    • 工作经验谈之-让百度地图API调用数据库内容 及详解
      这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
    • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
    • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
    • 向QTextEdit拖放文件的方法及实现步骤
      本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
    • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
    • Java容器中的compareto方法排序原理解析
      本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
    • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
    • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
    • CF:3D City Model(小思维)问题解析和代码实现
      本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
    • 本文详细介绍了Mybatis中#与$的区别及其作用。#{}可以防止sql注入,拼装sql时会自动添加单引号,适用于单个简单类型的形参。${}则将拿到的值直接拼装进sql,可能会产生sql注入问题,需要手动添加单引号,适用于动态传入表名或字段名。#{}可以实现preparedStatement向占位符中设置值,自动进行类型转换,有效防止sql注入,提高系统安全性。 ... [详细]
    • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
    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社区 版权所有