Unity游戏iOS马甲包处理方案
由于发行方有做马甲包这方面的要求:1。各个渠道发布看投放效果
2。增加爆光量
所以需求就来了
cp混淆方案
1.命名规则:
(1)工程名,文件夹名,文件名,方法名,变量名,图片名,要求每次出包都不一样。可以写脚本,每次出包前,先跑一下脚本,把这些名称都换一下。
(2)在每一个类中添加一些垃圾方法,添加一个不执行的方法
(3)优化图片大小,游戏资源修改hash值
(4)
(5)每个新出的包,换游戏加载图片,闪频图
(6)敏感词屏蔽,把weixin,wechat,alipay,zhifubao,pay,等屏蔽掉。
现成方案:
针对1,2,3,由于目前一些现成的方案都使用下来不明显:
codeGuard
Obfuscator
使用的反编译工具:
.NET Reflector
dnspy (推荐)
自己动手
1。图片pngquant 来压缩质量处理:
目录下的png批处理:
echo "開始处理..."
for /R %%i in (*.png) dopngquant128 --quality 85 -f --ext .png "%%i"
pause
2。C#代码物理混淆
a) c#类基本上处理,这是最麻烦的一步
针对自己游戏内部框架逻辑,将类改名,与之关联的prefab与unity都要改掉
修改/scripts/stages/cs文件名(xxxx.cs) 为yyyy.cs
查找xxxx.cs.meta 中的: guid: abcdef 保存备用
修改cs文件内public class xxxx 为yyyy
修改其他cs文件内的关联 public(private) xxxx ...为 yyy
保存yyy.cs,删除xxxx.cs ,删除xxxx.cs.meta
开启unity,让其生成yyy.cs.meta
读取yyy.cs.meta ,替换所有*.unity *.prefab中 guid: abcedf 保存这里是必须把所有类名排长短排序完成后再一个个替换,切不可以只拿一个试验,
这里面肯定会有报错的,需要自己修正原来的代码
对于prefab文件也可以这样处理。
目前方案在2022年5月试用有效。
目前自己用的go语言写的混淆方案:
GITHUB 大佬,能否提供下,脚本下载地址,参考一下
页:
[1]