在android中,一个程序是否被判断为病毒程序,其实最根本的原因与他干什么事没有必然的联系。。
而是因为该应用的签名存在于病毒库中。。。。
本博客模拟生成一个被判断为病毒的程序
1、随便新建一个项目A
2、在该应用中加上一下代码(用来打印该应用的数字签名)
try {
PackageManager pm = getPackageManager();
PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signatures = packageInfo.signatures;
StringBuilder sb = new StringBuilder();
for(Signature signature:signatures){
sb.append(signature.toCharsString());
}
System.out.println(MD5.getData(sb.toString()));
} catch (NameNotFoundException e) {
e.printStackTrace();
}
3、export该应用
4、安装并运行该应用,从日志中获取该应用的程序签名...
5、将改签名加入到病毒库中.......
6、将病毒库重新导入到到杀毒软件的应用的assets目录下(当然得看你的应用是怎么写的,这里是将assets目录下的并不快乐写到sdcard后,开始匹配所有应用,看是否有应用的签名存在于病毒库中....)
7、这时应用A就会被杀毒软件判为病毒程序