.Net Reactor 使用心得 (加密)

主密钥是干嘛的?

1 若要创建有效的许可证文件,必须使用与用于生成受.NET Reactor保护的输出相同的主密钥来创建许可证。

2 主密钥是在创建项目时生成的!必须保存该项目才能保留原始密钥。

dll而不是exe

由于使用的是.net6  生成的代码。  而.net6  有跨平台的特性,这里的exe只是一个引导程序,

需要加密的是其对应的dll文件!!!!

.net reactor 插件

.Net Reactor 可以往vs中加入.net reactor 插件,选择自己的vs版本即可!

装好了之后,vs的工具中就会多一个选项,就是 .net reactor 插件:

点击这个按钮,会弹出如下框:

点击了OK之后,此时不会发生任何事情,但是通过git可以发现,工程文件发生变化:

点开工程文件,然后用git进行对比,发现这里多了一句: 

有了这句之后,我们再次编译,就会发现此时的生产的dll就已经进行了代码的混淆了!

这就是加了混淆的代码,这些flag源代码都是没有的。

---------------2024年6月21日  补充--------------------

Options参数

参数描述
反篡改
-antitamp [1/0]此选项可防止受保护的程序集被黑客工具篡改。
[1] = Enable
[0] = Disable {default}
控制流混淆
-control_flow_obfuscation [1/0]启用“控制流混淆”来破坏程序流程,使其他人很难理解程序逻辑。
[1] = Enable
[0] = Disable {default}
控制流混淆等级
-flow_level [1/2/3/4/5/6/7/8/9]此选项使你可以控制流混淆的级别。“1”表示控制流混淆的最低级别,“9”{默认}表示最强级别。
本地EXE文件
-nativeexe [1/0].NET Reactor能够为你的应用程序生成本机x86 EXE文件存根。这样就无法在反编译器中直接打开受保护的应用程序。反编译器将受保护的应用程序识别为本机EXE文件。
[1] = Enable
[0] = Disable {default}
NecroBit保护
-necrobit [1/0]启用此选项以使用NecroBit保护。NecroBit可以与应用程序和库保护模式一起使用。在库保护模式下,将创建一个附加文件。
[1] = Enable
[0] = Disable {default}
NecroBit /反射兼容模式
-necrobit_comp [1/0]如果你在NecroBit保护库上有反射问题,则应启用此选项。
[1] = Enable
[0] = Disable {default}
创建映射文件
-mapping_file [1/0]启用映射文件以创建一个文件,该文件使用混淆的名称交叉引用未经混淆的名称,堆栈跟踪反混淆器(Stack Trace Deobfuscator)使用该文件。
[1] = Enable
[0] = Disable {default}
启用混淆
-obfuscation [1/0]启用此选项可以混淆所有非公共类和成员名称。
[1] = Enable
[0] = Disable {default}
增量混淆
-incremental_obfuscation [1/0]如果你希望.NET Reactor始终为你的类型和成员名称生成相同的混淆字符串,则需要启用此选项。
[1] = Enable
[0] = Disable {default}
排除
-exclude_enums [1/0]排除 - 枚举
[1] = Enable
[0] = Disable {default}
-exclude_events [1/0]排除 - 事件
[1] = Enable
[0] = Disable {default}
-exclude_fields [1/0]排除 - 字段
[1] = Enable
[0] = Disable {default}
-exclude_methods [1/0]排除 - 方法
[1] = Enable
[0] = Disable {default}
-exclude_properties [1/0]排除 - 属性
[1] = Enable
[0] = Disable {default}
-exclude_types [1/0]排除 - 类型
[1] = Enable
[0] = Disable {default}
-exclude_serializable_types [1/0]禁用此选项可防止可序列化类型进行混淆处理。
[1] = Enable
[0] = Disable {default}
-regularexpressions排除 - 正则表达式
混淆公共类型
-obfuscate_public_types [1/0]启用此选项可以对程序集中的所有类型和成员名称进行混淆处理。
[1] = Enable
[0] = Disable {default}
使用Uprintable字符
-unprintable_characters [1/0]不可打印的字符使用不可打印的字符串来混淆类型和成员名称,但如果程序集必须作为安全代码运行,则不能使用。
[1] = Enable
[0] = Disable {default}
Pre-JIT方法
-prejit [1/0]结合Native EXE文件功能和NecroBit,.NET Reactor能够将托管方法转换为REAL x86本机代码。只有不影响运行时和平台行为的方法(如属性getter / setter ...)才会转换为本机代码。 从本质上讲,此功能具有内置的组件修改保护。
[1] = Enable
[0] = Disable {default}
资源加密和压缩
-resourceencryption [1/0]启用此选项可压缩和加密嵌入式资源。
[1] = Enable
[0] = Disable {default}
字符串加密
-stringencryption [1/0]字符串加密伪装内化文本,使得解密CIL的交互变得更加困难。
[1] = Enable
[0] = Disable {default}
强名称删除保护
-antistrong [1/0]此选项启用反强名称删除技术,可防止受保护的程序集被黑客工具篡改。注意:此选项可能会影响受保护程序集的运行时性能。
[1] = Enable
[0] = Disable {default}
Anti ILDASM /抑制反编译
-suppressildasm [1/0]启用此选项可使用ildasm.exe工具禁止反汇编为IL。即使此选项设置为FALSE,你的源代码仍然是安全的。
[1] = Enable
[0] = Disable {default}

使用的例子:

2024年6月27日 踩坑记录

之前没有添加参数,发现加密后,程序出现问题:“prism” 框架,无法切换到主界面的问题。

后,我添加了参数:-obfuscation 0 之后,恢复正常。(这玩意儿,默认1!而非0)

最新参数说明,可以看官网文档  Command Line Parameters (eziriz.com)

软件其实可以根据界面自动生成参数!

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code bean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值