当前位置:首页 > 编程开发

马甲包差异化处理

webgou8年前 (2018-10-27)编程开发396

 

注:苹果审核时不能用任何资源下载、热更新,包括进度条、“更新”、“下载”等文本都要隐藏

马甲包差异化处理

前置:混淆比例以1:1为最佳,直观包体大小变化:混淆前150MB->混淆300MB

1.工程级:游戏端工程如unity工程差异化;导出Xcode工程项目差异化,名称不同,目录结构不同,info.plist差异( 用版本号差异大等),出包包体大小差异大(见下方减少IPA包体大小方法)

2.代码级混淆:类名方法函数差异化,OCluaC#C++等代码层:a.所有类名或方法名使用不同的前缀;b.增加垃圾代码,可以不产生效果,但必须在工程里调用(即include/import后调用空实现方法)注意:目前混淆的垃圾代码,机审会扫描是否可运行的。如果是非常无规则的或者和主代码完全不匹配的,直接提示垃圾代码。拒掉。所以垃圾代码要作处理,和主代码类似,有关联性,主代码和垃圾代码相互引用,增加耦合度,尽量多的相互调用,可以增加过包几率

3.资源文件级:游戏资源进行压缩,不同类目结构,对素材进行差异化处理(大小、尺寸、文件名、哈希值等进行批量小幅度更改:比如24X24改成23X23;10kb改成13kb;btn1.png改成btnl.png);首包资源按比例增减.  注意:IPA里面的图片文件名需要作处理,特别是已经被拒很多次的IPA。比如icon.pngbtn.png这样的命名,不要多包多次重复使用。会关联到已被拒的大量垃圾包,直接被拒

4.游戏UI美术级:游戏loading载入图、登录界面背景图、选角界面图等差异化;角色模型随机展示,初始任务或场景差异化,商城界面差异化(部分商品进行隐藏,审核过后再显示)

5.服务器交互级:游戏资源下载地址及其他交互链接地址差异化(比如http://url/k1变成http://url/k2);提审服游戏新手任务等差异化处理

6.使用不同的打包机器出包

7.代码、图片等资源的Xcode项目混淆案例

https://github.com/klaus01/KLGenerateSpamCode

https://github.com/JourneyYoung/iOSMixProject

 

8.Xcode工程编译混淆

a、混淆参考https://blog.csdn.net/SysProgram/article/details/75140310

b、在a完成后重启电脑即可在XCode编译选项中选择使用混淆编辑器;

c、注释掉代码Classes/Preprocessor.h line17 环境检测;

d、修改工程设置: BuildSetting->Obfuscator4.0-languageCXX

       CLANG_CXX_LANGUAGE_STANDART -> c++14

       CLANG_CXX_LIVRARY->libstdc++

e、修改工程设置:BuildSetting->Obfuscator4.0-CustomFlags

       OTHER_CPLUSPLUSFLAGS -> $(inherited) $(OTHER_CFLAGS) -mllvm -bcf_prob=40

【链接】Obfuscator-LLVMiOS中的实践

https://www.jianshu.com/p/a631b5584de6

 

减少IPA包体大小的方法:

1.对素材资源进行压缩

2.减少所支持设备类型,如仅支持iPhone设备

3.Xcode工程支持Bitcode(西游SDK暂不支持Bitcode

4. 减少所支持CPU架构,体积减小效果很明显,如图只支持arm64

各类设备所支持架构:

模拟器架构:i386x86_64

真机:

armv7:  iPhone 3GsiPhone 4iPhone 4siPadiPad 2

armv7s: iPhone 5iPhone 5c (只要支持了armv7,就可以在armv7s的架构上运行)

arm64: iPhone 5siPhoneSEiPhone6及更新iPhoneiPad5 iPad Air(2)iPad mini2~4iPad Pro以及更新设备

目前西游后台数据显示,32位旧设备占比为4%左右,32位旧设备充值占比为0.5%左右

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=638

分享给朋友:

“马甲包差异化处理” 的相关文章

注入dll的技术

目前windows下注入dll的技术大体上就是两种1:钩子 SetWindowsHook2:创建远程线程 CreateRemoteThread尽管都能实现远程注入dll…

GDB调试精粹及使用实例

一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一…

VC++动态链接库(DLL)编程深入浅出(三)(上)

第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解 答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵…

游戏资源打包

游戏资源打包几乎是一个网络游戏客户端必备的功能。页游和微端根据实际需求可能不打包资源或者使用小包。资源打包有这么几个好处:1、加快客户端安装时间。拷贝3000个1mb文件所消耗的时间要远大于拷贝一个3g的文件所消耗的时间2、客户端更加整洁,也可以“稍微”避免游戏资源被他人使用…

音频文件的采样频率(khz)与位速(kbps)

     数码音频系统是通过将声波波形转换成一连串的二进制数据来再现原始声音的,实现这个步骤使用的设备是模/数转换器(A/D)它以每秒上万次的速 率对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一…

评论列表

webgou
webgou

1.每次出包修改类名、修改方法名
2.资源文件需要cp那边做加密处理,每个包都需要不同的加密key,资源文件名修改,做轻量压缩(修改md5值)
3.混淆中间表示层(工具参考:易盾、几维、顶象)
4.从icon、login、loading图、创角界面都不一样
5.去掉过场动画、新手引导。
6.准备多个提审服,每个提审服的内容、服务器ip、地图力求不一样。
7、将游戏ui抽出来,做成可以在xcode中替换的,如充值界面、创角界面、主界面、通用背景图、首冲界面。
8、每次出包前,增加一些垃圾代码、图片进unity或者cocos,再导出xcode。

web
web

hdmi口不接显示器的主机,teamviewer连接黑屏 --卸载显卡驱动

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。