混淆 Unity DLL
文章目录
需求
需要对 Unity 中使用的 DLL 进行混淆,只要代码反编译后不容易读即可。
环境
- Windows 10 1803
- Unity 5.4.2f2
- ConfuserEx v1.0.0
软件
Obfuscar
首先尝试的是 Obfuscar
虽然官网做得很好,但是文档并不清楚、内容错误,自行研究安装后发现无法正确混淆。
ConfuserEx
第二个尝试的是 ConfuserEx
这款软件同时提供了命令行与图形界面
处理
准备
将要混淆的 DLL 放到单独目录中,从 Unity 安装目录中拷贝依赖 DLL 文件,这里需要根据具体依赖决定是否拷贝更多文件。
Editor\Data\Managed\UnityEditor.dll
Editor\Data\Managed\UnityEngine.dll
Editor\Data\UnityExtensions\Unity\GUISystem\UnityEngine.UI.dll
混淆
打开 ConfuserEx
Project
将要混淆的 DLL 拖放到 Project
的列表中
Settings
在 Settings
标签页中点击刚刚拖放进来的 DLL,再点击右侧的 +
号,列表中出现一个 true
。
选中列表中的 true
后再点击右侧第三个编辑按钮,弹出编辑界面。
Edit rule...
界面中的 Preset
与 Protections
是并集关系,建议根据需要手动选择需要的功能。
这里可以一个选项一个选项的开启,混淆后测试,保证 DLL 工作正常。
这里是测试可用的选项列表:
- ctrl flow
- anti ildasm
- anti debug
- ref proxy
Protect
直接点击 Protect
按钮即可在 DLL 所在的目录中的 Confused
目录找到混淆之后的 DLL。