iOS 审核现状
目前 Apple 审核越来越智能化“动态剖析 + 动态分析”,详见揭秘苹果利用审核团队(史上最全版)
总结如下:
- 旧形式:动态批改(简略的全局批改名称早曾经不实用了)
- 新策略:彻底混同 + 模仿人工混同成为支流
马甲包的实质:
- 阶段一减低反复率,例如根本的类名、属性名、办法名,字符串等
- 阶段二缩小类似度(雷同元素的正态分布),属性名、办法名是否按类辨别(例如:雷同属性名在不同类中混同完是否扭转,以及不同办法名在不同的类中混同完其实能够雷同的)。
- 阶段三扭转代码执行流程
辨别工具优劣
其实辨认一个工具的优劣,只需看看以下几点:
- 是否批改所有的属性、办法,及办法的所有参数名
- 批改成员(属性、办法)名称,是否按类辨别,还是简略的全局替换
-
带 block 的参数的办法,典型的网络申请
例如:+ (BOOL)post:(NSString )url parameters:(NSDictionary )parameters success:(HttpRequestResponse)success error:(HttpRequestResponse)error;
- 办法名和属性名改后的名字的长短(例如:name、title 等且保障不与零碎抵触,
齐全摒弃简略的靠大量单词库堆砌以保障命名的唯一性的做法) - 批改布局(Frame、Masonry、SDAutoLayout)
-
插入的是代码还是‘垃圾’(
大量随机毫无关联的垃圾代码)。例如:+ (void)init;- (void)reloadData; 根本能改,做到的有几个呢?”
工具比拟
目前很多工具都是停留在部分‘名称’全局替换这一个根本的性能,以及插入毫无关联度的随机垃圾代码,而且这两年根本停更状态,即便有更新也是 bug 小保护,没有实质上的冲破。
有一款工具很不错【520coding/confuse】,这款工具是能辨认宏、辨别继承链等上下文关联内容,智能辨认不可批改局部,做到齐全混同。同时插入的代码通过封装网络申请、数据存储、创立自定义控件,以及文件之间应用 MVC 模式关联,彻底辞别‘垃圾’,实现以假乱真。继续更新中,详见更新日志,运行 APP 效果图,工具应用教程