针对 Mono 和整个 .NET 的免费开源混淆器
BitMono 是一个免费的开源 C# 混淆器,最初主要为 Mono 设计和使用,但是,现在您可以随意将它用于任何 .NET 应用程序,但是要小心,一些保护措施适用于 .NET Framework,一些保护措施适用于在 .NET 上,一些在 Mono 上,一些仅在 Unity 上。
BitMono 使用 AsmResolver 而不是 dnlib(我们过去使用过)来处理程序集。如果您有疑问或问题,请在此处告知我们。在此处下载最新版本的 BitMono。
您还可以使用 BitMono 作为引擎来构建自定义混淆器。它是使用 Autofac 使用依赖注入 (DI) 构建的,并遵循最新的 C# 最佳实践。
BitMono 仅使用一个加壳器即可破解最流行的工具,例如:
因此,如果您为文件添加更多保护,我认为这看起来完全是神奇的。 :D
阅读文档以了解保护、功能等内容。
要下载最新版本的 BitMono,请按照以下步骤操作:
面向 .NET 8 :如果您的目标文件是针对 .NET 8 构建的,请下载: BitMono-v0.25.3+e64e54d3-CLI-net8.0-win-x64.zip
面向 .NET Standard :如果您的目标文件是针对 .NET Standard 构建的,则可以使用 BitMono for .NET Framework 或 .NET 8: BitMono-v0.25.3+e64e54d3-CLI-net8.0-win-x64.zip
面向 .NET Framework :如果您的目标文件是为 .NET Framework 构建的,请下载: BitMono-v0.25.3+e64e54d3-CLI-net462-win-x64.zip
针对 Mono 或 Unity 引擎运行时:如果您的目标文件是为 .NET Framework 构建的并在 Mono 或 Unity 上运行,请使用 .NET Framework 版本: BitMono-v0.25.3+e64e54d3-CLI-net462-win-x64.zip
注意:请务必选择与您的目标框架匹配的正确 BitMono 版本。使用错误的版本可能会导致兼容性问题。
启用protections.json
文件中的一项保护:将Enabled
设置为true
。
BitMono.CLI <path to file>/drag-and-drop
始终将libs
目录中的依赖项删除到混淆file
所在的同一路径中
您的混淆目录结构将如下所示:
specially_created_folder_for_obfuscation/
├─ your_app.exe
└─ libs/
├─ ImportantLibrary.dll
├─ SuperImportantLibrary.dll
└─ ...
从构建应用程序文件夹中复制所有库 (.dll) 并将它们粘贴到libs
目录中(如果尚不存在,则创建它),或者甚至使用自定义名称自行创建 libs 目录,例如 - myLibs
,然后指定它在 BitMono 中,但是,如果您将使用libs
,那么默认情况下 BitMono 会查找libs
目录,因此它将节省您的时间。
-f, --file Required. Set file path.
-l, --libraries Set libraries path.
-o, --output Set output path.
--help Display this help screen.
--version Display version information.
基本示例
$ BitMono.CLI -f C: s pecially_created_folder_for_obfuscation/your_app.exe -l specially_created_folder_for_obfuscation/libs
如果您已经有一个名为libs
的目录(specially_created_folder_for_obfuscationlibs),BitMono 会自动捕获它,因此,您不需要再指定它,但如果您在某个位置创建了另一个带有libs
目录,则可以磁盘甚至只是为了“可见性”。
$ BitMono.CLI -f C: s pecially_created_folder_for_obfuscation/your_app.exe
指定自定义libs
目录
$ BitMono.CLI -f C: s pecially_created_folder_for_obfuscation/your_app.exe -l C: m ythings o bfuscation s uperLibsDirectory
指定文件、库和输出。如果输出目录不存在,BitMono 将自动创建它,甚至在屏幕顶部打开它,如果您愿意,可以在obfuscation.json
中禁用在屏幕顶部打开目录 - 并将OpenFileDestinationInFileExplorer
设置为 false 。
$ BitMono.CLI -f C: s pecially_created_folder_for_obfuscation/your_app.exe -l C: m ythings o bfuscation s uperLibsDirectory -o C: s pecially_created_folder_for_obfuscation/output
想要更多吗?只需阅读文档即可。
有问题吗?在这里获得更多帮助。
如果您想自己构建 BitMono - 单击此处获取详细信息
请随意在下面描述的框架上使用 BitMono。请小心使用某些保护,因为有些保护可能仅适用于 .NET Framework,有些仅适用于 .NET(Core),有些适用于所有框架,有些仅适用于 Mono - 如果保护对其平台/框架是唯一的,您将收到有关的通知那。
框架 | 版本 |
---|---|
。网 | 8.0 |
。网 | 7.0 |
。网 | 6.0 |
.NET框架 | 第462章 |
网络标准 | 2.0 |
网络标准 | 2.1 |
JetBrains慷慨地向 BitMono 的贡献者提供了 JetBrains Rider IDE 的许可证。这个顶级工具极大地促进和增强了软件开发过程。
0x59R11因为他熟悉BitDotNet的大部分内容,该部分破坏了单声道可执行文件的文件!
我向加齐请求了很多帮助!
Elliesaur认识了DotNetHook,该钩子方法。
感谢Weka的建议、帮助和激励。
MrakDev是在UnmanagedString中认识的。
ConfuserEx 和他们的分叉为我关注的大多数事情提供了 BitMono 的架构和混淆器引擎作为应用程序,并解决了大量的用户解决方案,在 BitMono 的多次失败使用和其他用户的报告之后,我将在很长的将来知道这些解决方案。我每天都在寻找一些有趣的东西来提高自己的知识和 BitMono。
OpenMod当然,openmod 通过服务和干净的代码以及与 openmod 广泛相似的东西给这个项目带来了很多启发。
Kao 和他的博客非常感谢这些博客。
Drakonia为她的Costura 减压器。