您的位置:首页 > 移动开发 > Unity3D

使用Dotfuscator代码混淆工具给unity工程加密 (给dll做代码混淆处理)

2017-09-20 15:58 2566 查看

使用Dotfuscator代码混淆工具给unity工程加密 (给dll做代码混淆处理)

1.下载并安装Dotfuscator工具,去网上搜下载链接,此教程主要是教大家如何将代码重命名(也就是将类,变量,函数改为无意义的名字)。

2.打开Dotfuscator,点Settings → Build Settings,设置Destination Directory位置,也就是混淆之后的dll文件位置。





3.点Input,载入dll,如下图SprayCore.dll。





4.打开dll,注意Libray选项勾选了就默认此dll里面所有的公有的类,函数,变量名都不会被加密,此例子就是。





5.打开Rename。 注意左边的Exclude的意思是排除,想要不被重命名的话就勾选。





6.例如WebServiceManager脚本中的勾选中的私有的Awake函数就不会被重命名,还有其他的公有的也不会,左下角有个锁的图标就表示私有,特别要注意的是一定要把私有的Awake,Start等继承于MonoBehaviour的函数都要排除掉,因为不排除unity会找不到它而报错,如如果不想排除也可以,就是将使用到它的地方都重命名,这是个很繁琐的工作。





7.Rename里面也可以设置使用哪种方式重命名,例如下图,有四个选项,大写字母,小写字母,数字,无效字符,这个看个人喜好,我选的是无效字符。





8.点build按钮,等待下方窗口打印出Build Finished提示,则为混淆成功,Output窗口可以查看混淆之后的具体名字,如下图无效字符就是已经被重命名了,其中函数里的代码也会被转化成无效的代码。





9.在混淆的时候报错了,错误描述大致如下:

Could not find a compatible version of ildasm to run on assembly C:\xxx.dll This assembly was originally built with .NET Framework v4.0.30319

要混淆不同的.Net Framework版本需要在Settings,Project Properties,添加配置如下。

其中ILASM和ILDASM后面必需要加上对应版本的版本号,然后文件引用对应的版本文件即可。

ILASM_v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe

ILDASM_v4.0.30319

C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\ildasm.exe





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息