iOS混淆探索

Apple的审核机制日益智能化,包括静态分析和动态分析,首次混淆过审难度适中但易引发关联下架。马甲包策略需经过三个阶段降低重复率和相似度,以及改变代码执行流程。优秀的混淆工具应能全面修改属性、方法并智能识别不可修改部分。520coding/confuse工具脱颖而出,具备宏识别、上下文关联内容混淆及避免垃圾代码插入等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS审核现状

 目前Apple审核越来越智能化“静态分析+动态分析”,详见揭秘苹果应用审核团队(史上最全版)

总结如下:

  1. 首次混淆过审难度适中,但是处理不当容易和主包关联,造成同时下架
  2. 旧方式:静态修改(简单的全局修改名称早已经不适用了,这种属于典型的一次性工具,上第二个包能把第一个包关联上,一旦出问题,无一幸免
  3. 新策略:彻底混淆+模拟人工混淆成为主流

马甲包的本质:

  1. 阶段一减低重复率,例如基本的类名、属性名、方法名,字符串等
  2. 阶段二减少相似度(相同元素的正态分布),属性名、方法名是否按类区分(例如:相同属性名在不同类中混淆完是否改变,以及不同方法名在不同的类中混淆完其实可以相同的)。
  3. 阶段三改变代码执行流程

区分工具优劣

其实识别一个工具的优劣,只需看看以下几点:

  1. 能否修改所有的属性、方法,及方法的所有参数名
  2. 修改成员(属性、方法)名称,能否按类区分,还是简单的全局替换
  3. 带block的参数的方法,典型的网络请求

例如:+ (BOOL)post:(NSString *)url parameters:(NSDictionary *)parameters success:(HttpRequestResponse)success error:(HttpRequestResponse)error;

  1. 方法名和属性名改后的名字的长短(例如:name、title等且保证不与系统冲突,~~完全摒弃简单的靠大量单词库堆砌以保证命名的唯一性的做法~~)
  2. 修改布局(Frame、Masonry、SDAutoLayout)
  3. 插入的是代码还是‘垃圾’(~~大量随机毫无关联的垃圾代码~~)。

例如:+ (void)init;- (void)reloadData;基本能改,做到的有几个呢?”

工具比较

目前很多工具都是停留在局部‘名称’全局替换这一个基本的功能,以及插入毫无关联度的随机垃圾代码,而且这两年基本停更状态,即使有更新也是bug小维护,没有本质上的突破。

有一款工具很不错520coding/confuse,这款工具是能识别宏、区分继承链等上下文关联内容,智能识别不可修改部分,做到完全混淆。同时插入的代码通过封装网络请求、数据存储、创建自定义控件,以及文件之间使用MVC模式关联,彻底告别‘垃圾’,实现以假乱真。持续更新中,详见更新日志,运行APP效果图,工具使用教程

image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值