iOS 马甲包处理探索

前言

本工具用于应对苹果对重复应用的审核(Guideline 4.3 Design Spam),避免苹果机审检测概率。

被拒处理

4.3一般存在3种情况,可以根据被拒回复进行判断,如果你真的看不懂被拒回复,下面一一列举,逐一排除

第一种:简称代码重复,代码重复使用也有三种情况

1.可能你之前用这套源码上过一个包,现在用这套代码直接改一个logo跟名字再上一个马甲,这种基本会直接4.3

这种情况基本要改源码,第一步:工程中的文件夹的名字全部进行修改。第二步:每一个工程都有一个类前缀, 我们需要取一个长一点的类前缀, 并且这个类前缀在你的整个工程一定是一个唯一的字符串, 我们假设这个类前缀是PayDayLoan, 现在我们需要生成一个控制器, 控制器的结尾Controller也需要用一个特定的字符去代替, 比如:Director,剩下的View以及object做法类似, 就不一一介绍了,做马甲的时候就是把这些名字用另一个唯一的字符去代替, 尽量长一点。第三步:把另一个其他的工程中的类全部导入进来, 主要是混淆代码, 在现有的工程中调用, 可以没有任何效果, 只是单纯调用方法。

注:单一的加入垃圾代码混淆没用的!

2.如果你的这套源码在一个账号上提交过,但是被拒了,后来因为其他原因你不得不在别的账号上重新提交此源码,这种情况第二个账号基本也会报4.3

这种情况需要在第一个账号做一下处理, xcode新建一个应用, 直接用之前提交过的bundle Id打包,logo用一个纯白或者纯黑的图片, 将这个新建的应用提交到应用市场, 构建版本中将之前被拒的包移除, 用这个新的应用顶替之前被拒的包, app名字改成 “作废-此应用不再提交” 后面再随便加一个数次, 因为这个名字别人已经用过了, app描述跟app名字一样, 剩下的信息全部删除.最后点击保存即可.

3.你的源码只要提交到itunes connect里面,就算没提交审核,当你再次使用此源码提交审核的时候,基本都会报4.3

第二种界面功能相似这种情况简单的改源码已经没用了,需要在原有的app上加一些不同的功能,我用借贷类举例说明该如何解决,其他类型的app可以参考以下举两个应用说明, 分别用A应用与B应用代替, 你需要如何处理并且如何回复审核人员

1.A应用 是给没有信用卡的用户使用的一款借款App,B应用 是给有信用卡的用户使用的一款借款App.2.A应用的最高借款额度是1000元, B应用 的最高借款额度是25000元.3.A应用的还款时间是7天与14天, B应用 的还款时间是28天. 4.A应用内部有贷款计算器功能, B应用只是一个普通的贷款app, 并无其他功能5.两款app是我们公司内不同的部门开发的app, 分别针对不同的用户人群.

第三种,app名字被用过针对马甲包标题、名称、描述不合规的这项被拒原因,最有效的解决方案就是:马甲包名称方面:按照苹果审核回执书写标准修改马甲包的名称(侵犯其他品牌名称需要重新取名);升级version或者build ID 重新提审。马甲包标题方面:去除误导性品牌词、切换品牌词组合方式;修改标题长度(可进行标题精简字数至10字以内、多语言版本可每个语言版本标题一致),并回复苹果审核。马甲包产品描述方面:按照苹果审核回执去除误导性及错误性描述,尽量贴近游戏产品功能,并回复苹果审核。

除以上步骤外,还需要注意相同的马甲包提交至少要间隔一天以上,避免被同一个审核员看到。当然,还可以配合着升级套路:升级version(版本)号、换bundle id,换开发者账号再提交审核;如果以上步骤不奏效,还可以尝试采用修改应用价格、发布地区、产品分类等方式。不过注意,App上架后价格、发布地区是可以修改的,但产品分类不可以,对这个有要求的慎用!

IPv6的话,确认代码没问题的话,重新提交1~2次就好了。多数是审核人员所在的网络环境导致的问题,如果不放心,重新提交时将截图或拍下视频放附件里或直接向苹果申诉。如果 App本身有问题,例如不兼容 IPv6,最好的办法是让App兼容 IPv6 或通过升级服务器来支持IPv6,其他代码问题问问技术就OK了。

多尝试,不试试你永远不知道你什么时候会成功!

1、定期换电脑提包.

2、换电脑的序列号.

3、换图标,换启动图.

4、换VPN环境.

5、定期换域名.

工具方法

p2.png

图片一
图片二

  1. 修改工程名
  2. 修改类名前缀
  3. 扫描工程中的代码,生成同等数量的 Category 文件,文件中及是同等方法数量的垃圾代码。
  4. 修改 xxx.xcassets 文件夹中的 png 资源文件名。
  5. 删除代码中的所有注释和空行。

使用

使用源码

  1. 下载源码。
  2. 用 Xcode 打开工程并配置参数。如图
  3. 运行

使用二进制文件,在终端中执行 GenerateSpamCode

$ ./GenerateSpamCode \
/Users/kelei/Documents/work/git/projectName/source \
-deleteComments

参数说明

  • (必填) 源码文件夹绝对路径(如:/Users/kelei/Documents/work/git/projectName/source
  • -modifyProjectName [原名称]>[新名称] 修改工程名。程序会修改原名称-Swift.hPodfile原名称-Bridging-Header.h源码文件夹绝对路径原名称.xcodeproj原名称.xcworkspace的名称和内容。Podfile被修改后需要手动pod install
  • -modifyClassNamePrefix [工程文件 xcodeproj 绝对路径] [原前缀]>[新前缀] 修改源代码类名前缀。程序会扫描源码文件夹绝对路径下的 .h .swift 文件,修改文件名,修改使用该类名的代码,修改工程文件中的文件名。文件名有原前缀的会修改成新前缀,如:原前缀ViewController变成新前缀ViewController;没有原前缀的会增加新前缀,如:ViewController变成新前缀ViewController
  • -spamCodeOut [垃圾代码文件输出目录] [垃圾代码方法增加的参数名] 生成垃圾代码。程序会扫描源码文件夹绝对路径下的 .m .swift 文件中的类和方法,并生成categoryextension文件,文件中的方法是在代码原方法的基础上增加垃圾代码方法增加的参数名参数。如:-spamCodeOut /dir AppLog,会将- (void)setupKeys {}生成为+ (BOOL)setupKeysAppLog:(NSInteger)AppLog { return AppLog % 20 == 0; },会将- (void)foo:(NSString *)str {}生成为+ (BOOL)fooAppLog:(NSInteger)AppLog { return AppLog % 23 == 0; }
  • -ignoreDirNames [忽略文件夹名称字符串] 忽略这些文件夹,对-modifyClassNamePrefix-spamCodeOut-deleteComments参数有效。目前只会忽略源码文件夹绝对路径下一级的这些目录。如:/p/s -ignoreDirNames categorys,那么/p/s/categorys会被忽略,但/p/s/viewControllers/categorys不会忽略。
  • -handleXcassets 修改xxx.xcassets文件夹中的 png 资源文件名,同时也Contents.json文件中的关联名称,不会影响代码中使用图片。
  • -deleteComments 删除工程目录下 .h .m .swift 文件中的注释和空行。

另外修改图片 hash 值的方法

使用 ImageMagick 对 png 图片做轻量压缩,及不损失图片质量,又可改变图片文件 hash 值。方法:

  1. 安装 ImageMagick,brew install imagemagick
  2. 压缩工程目录下所有 png 文件,find . -iname "*.png" -exec echo {} \; -exec convert {} {} \;

使用经验

就我 2017-11 月的提交情况来看,只需要做如下修改就可以上马甲包了。

  1. 修改工程名
  2. 修改类名前缀
  3. 修改图片文件 Hash 值
  4. 修改 .xcassets 中的图片文件名
  5. 用别的电脑打包

已知问题

  • 生成的垃圾代码文件可能是 .m 文件中实现的私有类,编译垃圾代码可能会报错,删除该垃圾代码 .h .m 文件及可。
    git混淆代码地址:

二、修改方法名

先会class-dump. O(∩_∩)O谢谢。推荐San心两yi_钟的安装步骤

先大致解释一下“编译"、"反编译":

编译:就是把千千万万行字符串(也叫代码,或者源文件),变成010101010101(机器码,也叫目标代码)

编译过程:预处理-编译-汇编-链接

我的脚本运行在预处理阶段。

反编译:就是把0101010111110001100(机器码,也叫目标代码),变成千千万万行字符串(也叫代码,或者源文件)

 最近三年一直待在银行做App,由于银行对安全要求较高,所以iOS的代码必须要有混淆的措施,初期实施了[念茜姐](http://blog.csdn.net/yiyaaixuexi/article/details/29201699)的混淆方案,但是领导说,我们要自动混淆,方法名字不能一个一个的添加到func.list中,所以方法名只能从.m和.h文件中抽取了,但是如何屏蔽系统的方法名,暂行的策略是:将自己定义的方法名全部添加一个前缀。

例如 “hsk_funtion1”; “hsk_funtion2”;“hsk_funtion3”;

修改前缀如图

在Xcode-->Target--->Build Phases--->添加Run Script

通过class-dump 反编译之后:Appdelegate 效果

通过class-dump 反编译之后:ViewController 效果

codeObfuscation.h宏定义文件、confuse.sh脚本文件、func.list函数列表文件的关系。

程序每次预处理,都就会执行confuse.sh,从.m和.h文件中按照"一定的规则"抽取需要混淆的函数名,全部写到func.list中,然后再从func.list中逐行提取函数名进行宏定义,宏定义使用随机字符串,然后写到codeObfuscation.h文件中。

func.list函数列表抽取,和宏定义是脚本自动完成,不需要手动抽函数和手动宏定义呢。

源代码下载地址:

您的星星,是我最大的鼓励。最近想把HSKConfuse集成到CocoaPods,敬请期待。O(∩_∩)O谢谢

另送一份:iOS 脚本打包 傻瓜版,无需改变配置 github地址

WKWebView 获取JS端的console.log日志

修改方法git地址:·

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容