版权声明:本文为Jumbo原创文章,采用[知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议],转载前请保证理解此协议
原文出处:https://www.jianshu.com/p/ee2a141fe5dd
一、从开发的角度,这个可能性很大
- 解压ipa包,找到CodeResources 是一个plist文件,马甲包前后对比,diff大于45%判定为马甲包概率比较小 
- 这个文件保存了所有的文件的hash值,取得文件特征点数据算出来的,具体算法跟App包名、证书信息、开发者账号有关 
- 还有就是打包机器,提包ip地址有关 
https://www.jianshu.com/p/77b6869d648e?from=groupmessage
二、规避4.3的重心:
切断当前马甲包与以往马甲包的所有相似性关联;
相似性关联包括:
- ipa包特征; 
- 开发者帐号; 
- 打包电脑; 
- 上传IP; 
- 材料相似; 
分项细述:
- ipa包特征:
包括有代码相似性,资源相似性;
代码相似性解决办法:
a. 已有代码的混淆(改类名、改函数名)
b. 添加一些无用的代码;
资源相似性解决办法:
a. 资源改名;
b. 适当添加一些无用的资源;
- 开发者帐号:
两个马甲包不要关联到同一个开发者帐号的信息;比如打包时关联。
- 打包电脑:
有条件的最好用不同的MAC来打包(每台MAC上最好打包马甲包不要超过5个)
- 上传IP:
上传马甲包时,IP不要跟其他马甲包的IP相同;
- 
材料相似: iTunes Connect后台材料如宣传图,ICON,版权人不要出现相同; 
三、改动处理
- 项目工程 名称 结构 
- 二进制程序名称 
- 代码 修改名称 内容 目录结构 (Unity C#这个好处理, lua直接当做资源压入zip中) 
- 资源 (png等资源,项目中是ab包,尽量把ab等资源压成zip文件,对zip文件做hash处理,首次安装运行在解压) 
- App信息(签名,开发者证书,账号,一些填写的说明,素材) 
- 对于代码和资源的改动,前后打ipa包之后,比对下CodeResources文件对应文件的hash是否有变化