unity 使用Dotfuscator给dll混淆

我们用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正确运行,又防破解的目的

别用了不有问题,当dll大了后,混淆后unity识别有可能会有问题,造成unity崩溃
--------------------- 
作者:FoxGameY 
来源:CSDN 
原文:https://blog.csdn.net/u014635337/article/details/45439877 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值