版权声明:本文为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
切断当前马甲包与以往马甲包的所有相似性关联;
相似性关联包括:
ipa包特征;
开发者帐号;
打包电脑;
上传IP;
材料相似;
分项细述:
包括有代码相似性,资源相似性;
代码相似性解决办法:
a. 已有代码的混淆(改类名、改函数名)
b. 添加一些无用的代码;
资源相似性解决办法:
a. 资源改名;
b. 适当添加一些无用的资源;
两个马甲包不要关联到同一个开发者帐号的信息;比如打包时关联。
有条件的最好用不同的MAC来打包(每台MAC上最好打包马甲包不要超过5个)
上传马甲包时,IP不要跟其他马甲包的IP相同;
材料相似:
iTunes Connect后台材料如宣传图,ICON,版权人不要出现相同;
项目工程 名称 结构
二进制程序名称
代码 修改名称 内容 目录结构 (Unity C#这个好处理, lua直接当做资源压入zip中)
资源 (png等资源,项目中是ab包,尽量把ab等资源压成zip文件,对zip文件做hash处理,首次安装运行在解压)
App信息(签名,开发者证书,账号,一些填写的说明,素材)
对于代码和资源的改动,前后打ipa包之后,比对下CodeResources文件对应文件的hash是否有变化