探讨苹果商店那些“变身包”究竟是怎么上架的

·  阅读 32

什么是“变身包”

变身包,顾名思义就是会变身的包,就是用户从苹果商店下载了 app 后,app 会通过某种方式变成另外一个截然不同的 app 。

“变身包”做的业务大多数时候不是正规业务,因为如果能正规上架,就没必要这么费周章了,这一类应用肯定是因为苹果不允许上架,因为通过正常的上架流程是无法通过苹果审核的,所以开发者们才摸索出这样的“变身策略”。

用一句通俗点的老话,变身包就是“挂羊头卖狗肉”。后面也用“羊头”和“狗肉”分别指代产品的这两部分。

早期“变身包”的上架策略

在早期,苹果对待这一类产品还没有形成足够重视时,变身包想冒险上架还是不难的。

  1. 羊头部分,基本选择的是类似贴纸,手电筒等特别简单的应用。
  2. 在代码内植入狗肉部分的全部逻辑。
  3. 在代码内植入开关,这个开关可以是服务器切换开关,有的也会直接用时间开关,或者更简单的是进程第二次启动进行切换。
  4. 代码混淆,配置文件加密,此部分是老生常谈。

这套策略在早期很泛滥,虽然也会被苹果审查或者复查发现并封号,但因为上架率不低,回报又大在市面上极其猖獗。

但是随着苹果监管的升级,以上简单做法越来越不奏效,上架率也越来越低了(但不会变成 0,理由大家都懂的,就是苹果审核的玄学)。所以变身包开发者们又针对性的做了不少进化。

针对开关检查的反击

大家都知道苹果在查“隐藏特性”(条约2.3.1)现在是越来越严格,甚至会导致大量无辜的开发者被误伤。所以很多人愤愤不平,为什么我只是引入个第三方库你怀疑我隐藏特性,我服务器有个用于根据语言选择不同展示方案的逻辑你也说我有隐藏特性,而那些变身包却能堂而皇之的上架?

不得不说,论懂苹果,还是变身包的老司机们更强。

首先要知道,现如今苹果为了打击隐藏特性,其监察重点主要集中在服务器下发的数据,程序运行时配置文件,程序逻辑中的分支判定等上面。

所以变身包现在的“变身策略”已经很少用过去的服务器切换,时间切换,以及重启切换了。而采用现如今流行的:彩蛋切换。

所谓彩蛋切换,就像电子游戏里植入的彩蛋或者秘技一样,你必须通过触发某种条件,进行某些操作,才能触发(例如:魂斗罗的上、上、下、下、左、右、左、右、B、A、B、A)。

例如,某某某应用只是个普通的产品展示应用,用户通过点击 10 次主页按钮,然后杀掉进程重启,产品就摇身一变变成一个盗版视频站。

你说,像这种做法苹果能不能发现,可能可以,但是通过设计一个合理的“秘技”,不被发现的概率肯定提升了。

有人要说了,那藏得这么深,用户凭啥发现?就凭“狗肉”太香,开发者会主动去分享,用户也会自发传播,最终也可以形成过得去的流量。

针对无效代码的反击

很多开发者曾经遭遇过这样一个被苹果拒绝的情况,就是因为植入了太多第三方库,或者有很多代码暂时不需要用到,但是暂时也不删除留在应用体内,以便于以后用到时随时唤醒,却被苹果怀疑有“隐藏功能”而拒绝的情形。

那么问题来了,变身包凭什么就能不被检测到而通过呢?

其实,排除凭借运气过包的案例,很多更聪明的开发者是采用了“让无效变有效”的策略。

让我举一个例子,假设你的应用代码里包含了大量的播放器逻辑,而产品功能却和播放器毫不相干,那么如果被苹果机器或人肉识别到,是很难不被怀疑的。但是如果换个思路:让产品本身带有播放器逻辑,问题不就解决了吗?

开发者采用的就是这个方案,假设羊头部分是商品展示的应用,而狗头部分是视频站,那么就让羊头部分的商品展示带有商品视频播放展示功能,这么一来植入的代码就不显得有嫌疑了。

这也是为什么,现在的变身包,“羊头”部分要比过去稍微丰富一些的原因,一方面是过于简单容易触发审核的“条例4.1”,另一方面也是为了能丰富功能,掩护“狗肉”。

狡兔三窟,一肉多菜

为了将利益最大化,变身包的开发者肯定不满足于只上架一个包的,所以同一个狗肉换多个羊头是他们必然会做的事情。

但是,这个做法和传统理解的马甲包却很不一样,因为羊头可以是毫不相干的各种不同的品类,这就最大限度的让苹果无法根据羊头的相似度去识别。

而对于狗肉的部分,可以通过代码混淆,接口换名等种种手段,让它们在二进制层面毫不相干,再加上羊头在代码体量上的掩护,就非常不容易被抓到。

还是以那个盗版视频站作为例子,假设其狗头为商品展示app,那么下一个狗头可以换成一个 todo 效率工具。因为商品展示和 todo 效率工具几乎毫不相干,不太可能被苹果当 4.3 来处理,而盗版视频的代码部分通过变换接口名,代码内部混淆,最大限度的规避了机器判重,对于商品展示app 和 todo 效率 app 这两个羊头部分,开发者完全可以在代码堆砌上竭尽全力,使得其逻辑虽少代码量却巨大(因为他们根本不在乎品质)。进而最大限度达到掩护作用。

变身包真的安全吗?

并不。甚至做变身包的人自己也知道,他们做的理由无非就是:铤而走险。

随着苹果审核严厉程度的增加,变身包的生存空间只会被不断压榨。但就好像动物世界里的你追我赶一样,审核在升级,开发者也在变着花样绕过升级,灰色领域或许永远存在,只是市场越规范,其生存空间就越来越小而已。

而最终被无辜误伤的,只能是老老实实做产品的开发者。

这也是写作本文的目的,只有知己知彼,才能百战不殆。整理变身包是怎么上架的,并不是鼓励大家做变身包,因为这并不值得鼓励,而是想说理解了苹果审核规则的来龙去脉,才能有目的的规避各种暗坑陷阱,让自己顺利过包。

更多阅读

当苹果开发者发现自己的产品被抄袭时,该怎么做?

那些“无良包”为什么能上架?

聊聊 iOS 出海 App 中的多语言和 ASO 优化和雷区

移动开发者联盟加入指引

分类:
iOS
标签:
收藏成功!
已添加到「」, 点击更改