obfuscation tools
.net 社区有很多混淆工具, 比如这个清单: https://github.com/NotPrab/.NET-Obfuscator
比较有名的商业工具有 .NET REACTOR https://www.eziriz.com/,
开源软件中, 最受欢迎的有:
- obfuscar https://github.com/obfuscar/obfuscar
- 老版 ConfuserEx https://github.com/yck1509/ConfuserEx
- (推荐)新版 ConfuserEx2 https://github.com/mkaring/ConfuserEx
obfuscar 验证 (弃用)
obfuscar 使用很简单, 但 github 上没有预编译的版本, 需要通过源码编译 Obfuscar.Console.exe 程序.
参考官方文档定制我们的混淆设置, 比如下面就是一个简单的示例.
Obfuscar.xml 文件
混淆使用命令:
net48Obfuscar.Console.exe Obfuscar.xml
测试效果, 我的项目大量使用 dapper ORM, 经过 obfuscar 混淆后, 总是 crash.
ConfuserEx2 验证(推荐)
首先说明的是, 我的程序是Winform 程序, 用的是 .net framework 4.8, 经过验证 ConfuserEx 和 ConfuserEx2 效果都很好, 这里仅介绍 ConfuserEx2 的使用.
保护手段:
- ConfuserEx2 支持压缩 pack, 可以提高反编译的难度, 但经常被杀毒软件误报, 所以不建议使用.
- ConfuserEx1 也支持压缩 pack, 在我的电脑不会被杀毒软件报警, 但不确定其他杀毒软件是否会报警, 所以不建议使用.
- 不得不说混淆很有可能会引起程序异常, 尤其是对于匿名类的支持, 所以我仅仅选择了
必要
的保护措施, 经过实验和参考该项目的wiki , 分别是 ctrl flow, anti debug, anti ildasm, harden, 另外去除了 ConfuserEx 的 watermark , 这里最关键的是 ctrl flow. - anti debug 保护是通过启动监控debug的线程实现的, 所以文档中建议不要对所有的assembly 进行 anti debug 保护, 仅仅对 main assembly保护, 已避免性能损失.
项目文件
ConfuserEx2 提供GUI和CLI两种工具, 可以将混淆任务保存为项目文件, 下面就是我使用的项目文件.
GUI设置截图如下:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
通过kubeadm方式极速部署Kubernetes 1.24版本 前言 在Kubernetes的搭建过程中,繁琐的手动操作和复杂的配置往往会成为制约部署效率的关键因素。而使用kubeadm工具可以避免这些问题,大大提高集群的部署效率和部署质量。本文将为大家详细…