乐趣区

关于ios:iOS混淆探索

iOS 审核现状

目前 Apple 审核越来越智能化“动态剖析 + 动态分析”,详见揭秘苹果利用审核团队(史上最全版)
总结如下:

  1. 旧形式:动态批改(简略的全局批改名称早曾经不实用了)
  2. 新策略:彻底混同 + 模仿人工混同成为支流

马甲包的实质:

  1. 阶段一减低反复率,例如根本的类名、属性名、办法名,字符串等
  2. 阶段二缩小类似度(雷同元素的正态分布),属性名、办法名是否按类辨别(例如:雷同属性名在不同类中混同完是否扭转,以及不同办法名在不同的类中混同完其实能够雷同的)。
  3. 阶段三扭转代码执行流程

辨别工具优劣

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

  1. 是否批改所有的属性、办法,及办法的所有参数名
  2. 批改成员(属性、办法)名称,是否按类辨别,还是简略的全局替换
  3. 带 block 的参数的办法,典型的网络申请

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

  4. 办法名和属性名改后的名字的长短(例如:name、title 等且保障不与零碎抵触, 齐全摒弃简略的靠大量单词库堆砌以保障命名的唯一性的做法
  5. 批改布局(Frame、Masonry、SDAutoLayout)
  6. 插入的是代码还是‘垃圾’( 大量随机毫无关联的垃圾代码 )。

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

工具比拟

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

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

退出移动版