iOS马甲包上架总结;4.3处理经验;附工具下载地址

发布时间 2023-12-17 01:39:07作者: 这个我不知道诶

1.背景

目前市面上iOS马甲包的上包难度非常大,审核严格,有些不符合规则的应用想上架非常难,特别是原包是原生的更是基本无望.

主要分两种情况.

1.1 原包是web网页

一些公司为了节约开发成本,减少维护成本,往往直接用一次开发多端使用的网页去提审,结果显而易见,Apple是拒绝单独一个网页的应用的.

但这种情况是相对比较好做马甲的,因为B面的代码资源很少,随便搞个A面,加进去,写个开关就OK.

1.2 原包是原生

原包是原生有很多种情况,比如
原包是unity导出的iOS,
原包是cocos导出的iOS,
原包是直接开发的iOSApp,
等,
这些情况都有一个比较相同的特点:代码资源较多.隐藏麻烦

这篇文章就主要讲的是原包是原生的情况.

2.解决方案

2.2 代码处理

B面是原生代码,想藏是比较难的,所以只能做混淆.

2.2.1 类和方法重命名

每次将除了框架的代码,所有的自定义代码,类和方法重命名.

2.2.2 插入垃圾代码

上述重命名后,虽然类和方法每次都不一样,但运行逻辑是一致的,还是容易被标记.所以需要在自有代码里,每次加入不同的垃圾代码,运行时,逻辑都会不一样.

然后每个类里也可以随机加一些不会运行的垃圾方法,这样每个类的每次方法都不一样

2.2.3 加入冗余代码

上述两个步骤完成后,现有代码基本安全,但经不起详细分析,因为一看就能看到你的代码,改了名字也能看出部分逻辑,所以可以加入很多冗余代码冗余类到工程.原代码占比降低,被识别标记风险降低

2.2.4 字符串处理

代码中的字符串非常非常容易被标记,所以,代码里的字符串需要加密

2.3 资源处理

资源处理需要根据原包环境开发
大致原理
将原资源加密加压,确认进B时再解密解压

3.被拒4.3处理

3.1 静态因素4.3

经过上述2.2和2.3处理后,包的静态特征导致的4.3基本OK.
除了代码资源标记的4.3,还有内容方面

3.2 内容4.3

这种4.3基本就是因为具体内容和别人重复,没新意,建议做个变种,有自己的想法;界面UI也要和别人有区别

如果使用AB方案的话,A面要注意这些.

4. AB面开发分析

4.1 B面是原生iOS开发的话

A面随便搞,因为iOS和其他框架兼容很OK

4.2 B面是unity或Cocos的话

4.2.1:A面可以是对应框架,使用热更技术实现AB切换

使用热更技术实现AB隔离和切换,(但Apple对热更比较敏感);

4.2.2:A面也可以使用iOS原生开发.

使用iOS原生开发A面,兼容性很好,但市场资源很少,开发成本高

4.2.3:A面也可以弄不同的框架.

比如原包是Unity,A面可以是用Cocos
这样两个框架运行加载逻辑那些不会冲突,
解决两个框架编译环境冲突即可

总结

目前,我使用上述的方案,已成功上架多个包.运行稳定性都还比较OK.

过程中一些处理步骤进行了封装,集成到了一个工具中.有需要的可以借鉴使用:
代码混淆(类名方法名更改)
插入会运行的逻辑垃圾代码
插入不会运行的垃圾方法
添加冗余类和代码
文件(夹)加解密
字符串加解密

工具地址

安全工具-Mac版-下载地址-下载速度中

安全工具-Mac本地版-百度网盘下载地址-下载速度看是否有会员

联系作者

如有疑问联系作者.