接上篇:Google Play上架之Malware(恶意软件)可能原因分析
其实很多开发者并不知道自己哪一行代码或者哪些App的动态行为会被Google认定为恶意软件,但我们可以初步使用virustotal网站来检测下自己的release包,便于提前发现潜在问题并解决,最大限度降低代码引发的恶意软件风险。
我检测了一下我们的App,使用virustotal扫描后发现了报毒问题,这是必须要解决的,下面给大家分析下解决思路。
首先,我们可以确认的是,virustotal报毒一定是代码的问题,所以最简单有效的方式就是采用排除法来定位问题,通过移除代码,重复检测来最终确定是哪个库或者哪个模块,进而确定哪一行代码导致的报毒问题,过程不多说,下面给大家列举下我们通过哪些代码修正解决了报毒问题。
1.忽视混淆文件规则调整: 在实践中发现,混淆的越彻底的包被检测出的报毒会更少。不可否认,我们很多App的混淆文件都是在某些地方复制或者老项目遗留的,强烈建议大家整理自己的混淆文件,尽量让自己的App混淆得越彻底越好。例如:
//移除
-keep class androidx.** {*;}
-dontoptimize
//更换混淆文件获取方式
getDefaultProguardFile('proguard-android.txt’),proguard-android.txt文件改为proguard-android-optimize.txt
2.反射+固定代码环境: 如下代码,我们在使用反射来coding时,其代码可能会引发virustotal报毒,但实践中发现并不是所有的反射代码都会引发报毒,大家根据自身项目做逻辑优化。
Method method = PackageManager.class.getMethod( "getPackageSizeInfo", String.class, IPackageStatsObserver.class);
3.权限+敏感词: 比如SMS,callType,Contact等,我们可以将其拆分开等再用的时候再合并或者改名都可以有效避免virustotal报毒,我们也可以采用加固的手段将所有的字符串加密。当然,有这些敏感词并不都会报毒,可能与您有没有申请相关权限或者代码上下文逻辑相关。
**4.三方SDK : **我们曾经发现Advance活体SDK会引发virustotal报毒,但其新版本已经解决,所以其他SDK也可能有类似风险。
virustotal网站还是受到很多机构认可的,当我们上架某些三方渠道时(例如传音),很多都会要求我们出具virustotal检测通过报告,所以大家还是谨慎对待。
官方网站:www.virustotal.com/gui/home/up…
权威介绍:docs.virustotal.com/docs/how-it…
App出海交流群,寻找志同道合的你
经常分享Google Play,App Store市场政策解决方案,大家共同深入了解应用市场App上架、下架背后的原因,如政策违规、安全漏洞、版权问题、市场策略调整等,确保海外App合规、安全并提升我们的用户体验。也不限于分享其他App出海快讯,一起见证行业的蓬勃发展。
欢迎您来到App出海交流群讨论出海的任何问题!想进群的可以点击这里,或者或者关注公众号趣浪出海,我拉您进来。
这是一个高质量的属于App出海浪潮儿的技术交流中心!
在这里,都是一群热衷于在海外发展的人群:
1、你的各种谷歌&苹果应用上架问题都能得到解决。
2、你可以了解到各种最新的谷歌&苹果政策更新。
3、你可以获得每日的应用上架数据,了解谷歌&苹果审核严松状态。
4、你可以获得各种资源信息,助力企业出海。