找回密码
 立即注册
查看: 276|回复: 1

[笔记] Unity游戏iOS马甲包处理方案

[复制链接]
发表于 2022-7-22 10:18 | 显示全部楼层 |阅读模式
由于发行方有做马甲包这方面的要求:

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) do  pngquant  128 --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
发表于 2022-7-22 10:18 | 显示全部楼层
大佬,能否提供下,脚本下载地址,参考一下
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-3 13:07 , Processed in 0.211542 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表