问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

iOS审核被拒4.3,怎么解决

发布网友 发布时间:2022-04-23 14:53

我来回答

3个回答

热心网友 时间:2023-10-03 05:05

最近,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马甲包的混淆方案。

作者:棋牌视角

来源:棋牌视角

本文为作者授权鸟哥笔记发布,转载请联系作者并注明出处

来源: 棋牌视角(ID:qipai49)

本文为作者授权鸟哥笔记发布,转载请联系作者并注明出处。

马甲包对于一家公司的产品引流起到至关重要的作用。但是最近这段时间,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马甲包的混淆方案。

第一次被打回

第一次被打回时,我们并没有意识到马甲包的问题有多严重,而且苹果给出的拒绝原因是我们的APP中包含敏感词汇,我们当时并没有往马甲包的方面去想,第一次被打回时,我们采用的方案是对敏感词汇进行base64+MD5的混合加密方案,然后就重新提包了。

第二次被打回

这次苹果说的很明显了,而且他们机扫了我们的二进制文件,告诉我们API名称与我们之前的一个产品非常相像,而且那个产品并不是使用这个马甲包的开发者账号。我们猜测苹果可能针对APP做了数据库,会去比对方法名。


这一次我们代价比较大,由于之前没有考虑到这层,我们的API名称就是和系统方法命名方式保持一致,导致无法引入脚本来自动替换。我们花了三个开发,和6个小时,人工对我们自定义的API名称加上了特定前缀,如ab_xxx.这个思路主要是根据念茜大佬之前在微博上发布的API混淆加密方案。念茜的脚本是将需要混淆的API添加进文件,然后全局对所有需要加密的API字段进行混淆加密。我们在此基础上更新了脚本,可以自动抓取拥有我们前缀的API进行加密。但是这个方案在后面我们完全摒弃,所以在这里不详细往下说了。

第三次打回

第三次被打回已经惊动了老板,再想不出好的固化混淆方案我觉得差不多可以收拾东西了。这次苹果的拒绝原因更令人窒息,他说我们的API加密性质太明显,认为我们的APP一定藏有什么隐藏功能,还给我们吃了一张延迟审核的黄牌。经过我们一波分析之后,认为这几次被打回的经验中,苹果没有涉及到说我们的UI有什么相似的地方,所以,只要我们能把这个马甲包做到变成我们开发人员都认为是另一个APP即可。

分析

首先感谢将混淆脚本开源的大佬!已经找不到源码是谁写的了,我们只是站在了巨人的肩膀上!

改头换面

首先,由于是从主APP上拉的分之进行开发,所以这个马甲包的scheme和工程名都没有变化,于是我们首先从这里进行开刀。我们把project名称完全换成了另一个。

API

首先base64加密API肯定不能再使用了,苹果都说了,加密特征太过明显。


幸好之前已经把所有自定义的API名称都加上了ab_前缀,使得我们写脚本很好识别。我们将所有扫描出的API放到一个plist文件中保存在本地,然后我们建立了6个数组,每个数组中有6个单词,每次从每个数组中随机抽取一个单词。将6个单词拼接成一段方法名保存在另一个plist文件中,当然,在保存前,先去重,如果这个方法名已经用过了,那我们随机再换,这样一共可以生成46656种方法名,对于我们的工程已经够用了。

图片

我们利用脚本遍历本地所有png文件,当然你可以自行添加.jpg格式遍历。根据自己的命名规则将所有图片重新命名了一波。另外我们也发现网上有个轮子可以利用shell命令对所有图片资源进行超轻量级的压缩,在不影响图片质量的情况下,改变图片的hash值。当然我们的马甲包中图片没有和主界面相似的,所以的这一步我们没有实践。

类前缀替换

这一步主要是更改文件名。程序扫描绝对地址下的所有文件,只要是带”XX”开头的文件都替换成”AB”这种,另外每次替换一个文件都要遍历所有文件,将所有用到这个头文件的文件内容进行更换。

注意

类前缀替换有时会有个别没有替换到,我没能定位到问题,但很少,可以手动查找替换

生成垃圾代码

我用plist专门搞了一个垃圾方法名,每四个方法生成一个带参数名的方法。暂时每个文件里只生成一个垃圾方法。当然可以多运行几次,就会生成几个垃圾方法

实现

混淆工程我们使用C+OC的混合编程方式。


目前已经实现的功能有:


1、图片资源修改名字

2、修改工程名

3、类前缀修改,如“GD”修改为“IE”,即修改了文件名

4、混淆随机添加垃圾代码、参数

5、修改方法名前缀

6、人工修改部分方法名,人工对重要类中的方法进行打乱排序

7、(可选)本地图片超轻量级压缩,打乱hash值,新上的马甲包建议修改

使用方法

启动参数配置

先配置启动参数再运行,如图
除第一项必选外其他都非必选。另外第一项启动参数必须放在第一行

参数解释

1.工程代码的绝对路径

2.-modifyProjectName [原工程名]>[新工程名]

3.-modifyClassNamePrefix [xcodeproj文件的绝对路径,不是pod安装后的那个打开文件] [旧类前缀]>[新类前缀]

4.-spamCodeOut

5.-ignoreDirNames [需要忽略的文件夹],[需要忽略的文件夹] 注意,Pods文件夹不在混淆范围内,不需要写

6.-handleXcassets (混淆图片文件)

7.-deleteComments (删除多余的空格和注释)

8.-chageAPIPrefix [旧方法名前缀]>[新方法名前缀] 注意,前缀要有“”才能被识别,如果之前工程中没有xx下划线开头来命名方法的,此项不要勾选

此工程可以选择混淆概率,修改工程中kPercent数值。


实际测试如下

小结

目前第三次打回后的工程已经提审,未可知能否过审,会持续更新。脚本也写的很匆忙,后期会进行优化。脚本传送门

www.it9188.com

热心网友 时间:2023-10-03 05:06

可通过修改APP代码、APP名字、icon、主色调等方式解决,并且注意相同的马甲包提交至少间隔一天以上。
代码可以利用第三方的代码混淆工具来完成,改变同一个马甲包的代码而对功能又没有改变,大大降低开发时间。可以使用顶象的iOS代码编译器,利用iOS代码混淆技术来改变二进制文件。

热心网友 时间:2023-10-03 05:06

不知道 问百度
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...括号内为杂质),所选用的试剂(足量)及操作方法均正确的是... ...所含的杂质以及除去这些杂质选用的试剂或操作方法,正确的是( ) 物... 佳能相机wifi传图片到电脑怎样将canon相机上的图片通过wifi导入电脑 佳能无线连电脑预览画面怎样将canon相机上的图片通过wifi导入电脑 支票丢了可以补办吗啊 存的支票找不到了怎么办 ...的时候总是连贯不起来,就像在一个单词一个单词的念一样。 每当我看见那些人用英语很自然交谈的时候,我就觉得他们非常的酷,我 每当听到一个英语长句,我的脑袋就发懵,总是仅仅听到其中几个单词 天玑800U和骁龙765G处理器对比有多大差距? ios开发说明文档中透明度为:#ababab是什么意思? ios中将两个.a库合并是不是就可以使用两个库中的方法 这次战舰少女r3.30版本的更新,ios的AB反和谐方法没用了,非越狱机怎么反和谐? ios 8可以用ab卡破解联通4g吗 日常机器怎么用 日常生活中的机器人的名字 日常生活中的机器有哪些 生活里有那些机器人?他们能干什么? 哪些是属于机械产品,日常生活中有哪些? 日常生活中的简单机械,机械名称 日常生活中你见到了那些简单机械?请写出五种简单机械的名称。 家日常生活中使用了哪些简单机械? 物品名称 使用的简单机械名称 新型的、贴近日常生活的人工智能产品有哪些? 生活中常见的机器人 家日常生活中使用了哪些简单机械? 日常生活中我们会用的机器有哪些? 日常生活的简单机械有哪些? 物品名称: 使用的简单机械名称: 常用的简单机械种类有什么? 生活中常见的机器按用途分类? 生活中用了哪些简单机械?(写出物品名称与用得简单机械的名称) ios中两个控制器相互导入会出现什么问题 ios战舰少女r怎么反和谐我试过ab法没用 平板和ipab有什么区别? 求一款ios的mp3播放器的名字,带有AB复读和变速功能。最好是ipad的,iphone的也可以。非越狱 ios统计工具有哪些?哪些工具比较详细 求教大家还知道有什么iOS的视频播放器像ab站的app一样可以加弹幕的啊 iPhone 6s型号PA/A是哪个国家版本? 什么是实际进度前锋线? ios14如何允许app使用 建设工程实际进度与计划进度的比较方法有哪些 iPab不越狱怎么下载好玩的游戏, 实际进度与计划进度的比较方法有哪些? 如何判断iphone设备型号和ios系统版本号 合同里面的项目实际进度是什么意思 如何查询到IOS设备各个机型的占比? 实际进度前锋线如何绘制! 实际进度与计划进度的比较方法有哪些 苹果的国籍在哪里 工程设计进度和实际进度有区别的主要原因是什么?? 把计划进度和实际进度用累计完成百分比曲线来表示的图形比较法是?