unity 使用Dotfuscator给dll混淆

匿名 (未验证) 提交于 2019-12-02 23:42:01

我们用C#写完代码后,无论想做热更新,还是想加密防破解,都可以把代码编成dll库,然后用第三方工具做混淆

但我们做混淆时要注意,混淆后要unity能识别,正确运行,并且外部也能正常调用,所以思路是只混淆私有函数、私有变量,最好还能混淆函数内的逻辑,目前只找到Dotfuscator4.2破解版本能满足我的需求

1首先我们把dll拖到input里 选中Library,这样会只混淆私有的变量名和方法名

2我们在看下Options,这里是全局设置,我们只开启流程混淆和重命名,选No,其它禁用Yes,其它默认(最后一个string encryption是字符串混淆,跟据需求选择)

3设置重命名排除,设置过Library后,除了私有的,其它的变量名和函数名都不会被混淆重命名,但在这里,我们还可以将任何不想被重命名的勾选上,然后就会被排除掉

4设置依赖库,有的时候我们的dll可能会依赖其它dll,这里我们需要设置被依赖的dll所以目录,不然混淆会失败

5设置输出目录,然后点击,Build

PS:

1我们可以将经常需要混淆dll的配置保存成Dotfuscator的工程,其实就是一个xml文件,然后每次就不用设置了

2使用iTwenn时发现iTwenn不能被混淆,不然会执行不正确,所以需要在Rename里将iTwenn排除掉,注意所有的子项也要手动勾选,勾选父后,子项并不会自动勾选

3大多数时我们可以将不想被混淆的私有函数或私有变量,写成protected,这样就不用在Rename里排除也不会被混淆了

最后我们可以用ILSpy查看下混淆后的情况,发现public和protected的变量和方法都没被改变,private的方法和变量被混淆了,函数内的逻辑已经被混淆,这样就达到了我们既想能被unity正确运行,又防破解的目的






版权声明:本文为博主原创文章,转载请附上博文链接!

文章来源: https://blog.csdn.net/Abel02/article/details/91557134
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!