本文只适用于机审 4.3,区分机审和人审请找你们后端或运维看看审核期间有没有IP登陆。

  1. 机审原理

我们虽然无法得知苹果实际的机审原理,但从程序员的角度还是能分析出一些东西的。

1.1 首先OC和C++代码编译出的二进制文件,有点经验和反编译过的应该都知道:

删注释神马的是没用的,因为注释是不会被编译进包里
改类名是靠谱的,因为反编译出来能看到类名,改掉它显然是会造成包不一样
增改函数也是靠谱的,同样是因为反编译能看到
改文件夹或者文件名应该是不太靠谱的,编译的时候会根据路径来引用查找,编译之后应该是根据在包里的相对内存地址来查找类和函数,跟你编译时的文件名称和路径关系应该不大。不过为了方便和代码的统一,更换时可以顺便换了。
1.2 然后是一些资源文件如图片、音效

路径和文件名相当可能或者绝对是有用的,可惜修改代价有点高
文件的md5值以程序员的角度来看才是真正区分文件是否一致的标准,我们有理由相信我们的苹果同行也用了这个来判断是否重复。所以一些修改md5值的操作如添加空行、注释、额外字节,应该也被考虑加上。
1.3 最后是相似的判定,应该是相似率高于某个值才认为你跟其他的重复了,针对像改资源文件名这种代价太高的可能暂不考虑的操作,我们只能添加垃圾文件提高总值来降低重复率了。

  1. 混淆方法

2.1 修改类名文件名

先说下手动操作,无非是在xcode上修改文件名类名,然后在可能引用的地方替换类名和文件名(header),要注意的地方是替换的时候要选中匹配大小写;然后是文件夹名称跟文件名一样的时候,可能文件夹名称也要跟着改名,否则替换之后路径引用可能找不到。
如果是要脚本批量操作,那最好先对工程整理下,确保以下几点能让脚本写的更简单更可靠:

要修改的类和文件最好都放到一个文件夹下,万一搞出事不用东找西找,备份和回滚也简单一点
类名和文件名尽量带上前缀,这样修改只替换前缀即可,也不太会跟函数名、变量名什么的重复
最好过一遍把不能修改类名的列出来,比如外面太多地方调用的、第三方的类库。在写脚本的时候把他们排除在外
脚本的话就是遍历文件,判断前缀、是否排除在外,修改文件名类名,在其他文件中查找替换。用python的话应该不是什么大问题。一个小技巧是改完后可以替换一下xxx.xcodeproj/project.pbxproj里的相应字符串,这样xcode打开工程的时候就不用手动再添加进来。

2.2 添加垃圾函数

OC头文件的声明必然是在@interface @end之间,实现是在@implementation @end之间,C++的大部分应该是以}结尾,直接在相应的地方插入垃圾函数,模板可以直接写个HelloWorld输出个随机字符串。在这一步随机名称是个坑,可以去网上找下常见英文单词,格式化后把太短的、太长的、看着不爽的,最重要的是语言的关键字如break,false,if之类的删掉

2.3添加垃圾类

根据我们猜测的路径应该是不影响打包的,所以我们可以简单的把垃圾类文件都放到同一个文件夹下方便管理,写好2.2后这一步应该就是顺手的事情了 。我不太确定的是如果外部不引用这些垃圾类,编译之后它们会不会因为太独立而被检测认为是垃圾代码。所以保险起见,我实现的时候写了一个单独的头文件include了所有这些生成的垃圾类,然后在外部include了这个单独的头文件

2.4修改资源md5值

资源文件有很多类型,通常来说文本文件添加随机数量的空格或空行应该就可以了。图片的话常见的png和jpg都是有固定的结尾字节块的,png是00 00 00 00 49 45 4E 44 AE 42 60 82,jpg是ffd9,用16进制查看工具打开图片应该能注意到这个规律,也可以参考下常见图片文件格式简析。在结尾字节块添加的内容是不会影响图片本身显示的,我们可以利用这个来改变图片的md5值。音效应该也有相应的格式,期待大佬科普下!

2.5创建资源垃圾文件

跟2.3类似,不过这个最好也随机下创建文件夹显得真实点,一些文本文件是什么格式都有各自定义,png和jpg的话就随机写任意长度的任意字符,最好结尾加上相应的结尾字节块,防止2.5后又执行2.4导致出错。

  1. 其他事项

上面的基本都能脚本自动化执行,完了后工程名最好也在xcode改下;info.plist会被打包进ipa,最好也多加几个字段上去;target能改也改下方便识别;scheme关联到导出的ipa文件名,不是特别麻烦也顺手改掉;包名、启动页、图标应该都是基本的东西不会被忽略。

这些改完之后,希望你自己也不认识它了!
相关工具会慢慢整理到iosMixTools,欢迎大家讨论和提Issues。

作者:lyzz0612
来源:CSDN
原文:https://blog.csdn.net/lyzz0612/article/details/80390362
版权声明:本文为博主原创文章,转载请附上博文链接!

马甲包4.3混淆方案相关推荐

  1. Android:如何优雅的开发马甲包?

    一.什么是马甲包 马甲包是利用各大市场规则漏洞,通过技术手段,多次上架同一款产品的方法.马甲包和主产品包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致. 二.为什么做马甲包,做 ...

  2. 【flutter】上架马甲包过审

    flutter上架马甲包过审: 所谓马甲包,就是完全复制主包功能或保留部分功能分身包,而各大应用商店都是不允许马甲包的存在的,所以就要通过技术手段,让马甲包与主包的外表和内在都变得不一样.简单得分为两 ...

  3. 微信小游戏马甲包过审(马甲包过包)

    什么是微信小游戏马甲包 微信小游戏马甲包 是指同一套游戏源码使用不同的主体上线微信小游戏平台. 如果要过审的马甲包游戏源码上传时没有经过混淆处理,就会被微信识别到代码侵权然后打回,同时主体信用分-5( ...

  4. 利用 shell 脚本进行android 马甲包制作

    最近公司需要进行马甲包的制作,一开始想拉分支来解决,发现这样的做法不是很好,如果是多个马甲包呢?需要拉N个分支,一旦源代码动了,马甲包代码也要跟着动,而且还会产生很多冲突,多个地方需要操作起来,费时费 ...

  5. ios审核被拒4.3,马甲包提交

    一. 先说说为什么要制作马甲包  (马甲包应用比较广泛的几种app:金融类,彩票类,付费视频类) ①防止app因为违规被苹果下架后"一无所有" 付费视频类,彩票类的app多少都会违 ...

  6. iOS马甲包混淆方案怎么做?

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

  7. App Store 4.3 大礼包被拒 ,马甲包制作方案

    马甲包制作方案 基本原则:不阉割功能,顺利上架 为确保上架成功,马甲包需进行差异化处理,可从以下几个维度进行操作: 1.界面差异化: (1)全套UI风格替换: (2)不影响功能前提下,部分界面布局微调 ...

  8. 马甲包审核被拒对应的处理方案

    写在前面 马甲包审核被拒,目前网上流传最广的就是2.1和4.3,在查看了很多文章之后,从两篇介绍的比较详细的文章中把这两个大礼包对应条款的解决方案,整理出来,为开发马甲包做一个准备,同时分享给大家. ...

  9. iOS 如何解决苹果审核4.3问题(guideline4.3, 马甲包4.3, 马甲包混淆)(一)

    最近用户遇到苹果审核guideline4.3问题, 也就是大家说的马甲包4.3, 这里来说说原因. 首先,要看你是什么产品和使用的什么技术框架, 不同的框架对应的解决方案是不一样的.  先说说为什么会 ...

最新文章

  1. 树莓派视觉小车 -- OpenCV巡线(HSL色彩空间、PID)
  2. opencv实现二值图像细化的算法
  3. 自作的WM文件浏览器
  4. oracle apex接口文件,Oracle之APEX深入开发指南
  5. Py之av:av库的简介、安装、使用方法之详细攻略
  6. C Runtime Library 的来历
  7. 关于Golang的4个小秘密
  8. jsp中get请求与post请求编码统一问题(1.0)
  9. Language modeling tutorial in torchtext
  10. 图论——两道并查集例题
  11. Struts2 中的值栈的理解
  12. php redis 菜鸟,安装redis和phpredis模块
  13. 一些生物信息学常用的分析法的介绍
  14. 北航计算机考研 跨考,北航计算机考研经验谈_跨考网
  15. 鼎利5G测试软件不显示信息,鼎利软件应用 - 4G/5G - 通信人家园 - Powered by C114
  16. Sniffer数据报文解码详解
  17. 几款强力压缩打包软件
  18. stm32采集脉冲信号_stm32用ETR采集外部脉冲个数出现二分频问题,请教哪里设置......
  19. Xposed模块编写方法
  20. regression and anova

热门文章

  1. 美团面试——北京总部四轮面
  2. 拍什么内容发抖音会火?没粉丝的完全可以学习
  3. Android版-微信APP支付
  4. 【shaderforge学习笔记】 Specular(高光)通道
  5. 初学Java,遇到了一个好老师
  6. 基于Cemotion的在线评论情感分析及准确率验证(准确率:96%)
  7. Co-occurrence Feature Learning from.....分层式共现网络(动作识别、检测)
  8. 和平精英明星四排赛,你的网游.fans域名抢了没?
  9. 【图像处理】双眼去掩蔽
  10. 腾达无线路由器网关和域名服务器,腾达(Tenda)路由器登录地址/网址是什么?