管家病毒查杀模块逆向分析

本文研究的是*管家2.8—3.6版本的杀毒模块功能实现。众所周知,杀毒软件查杀病毒分为主动查杀和被动查杀两种方式。*管家的主动查杀包括快速查收和全盘查杀,而快速查杀和全盘查杀都使用了本地查杀技术和云查杀技术。

快速查杀

      快速查杀首先获取系统安装的所有应用。创建"/data/data/com.anguanjia.safe/classes.dex"文件,将待扫描的apk解压,获取包中的classes.dex文件内容写入到"/data/data/com.anguanjia.safe/classes.dex"文件中。

 

然后计算"/data/data/com.anguanjia.safe/classes.dex"文件的md5值,完成后删除该文件。

 

将得到的md5再次取md5值,然后与本地数据库进行匹配,具体检测过程如下图所示:

 

 上图中的getMyParam11函数实质就是对service字符串拼接“0x400-service字符串长度”长度的0后进行base64编码:


下图为扫描应用的service时监控到的log输出:

 

下图为检测到病毒时(l>0)更新appdata数据库的newapp表代码:

 

云查杀

在云查杀时,获取系统安装应用的包名、应用名称、证书签发者、证书序列号、classes.dex文件的md5值、是否系统应用等信息上传到http://av.aqgj.cn/p/a1.php

 

 

 以下为云查杀时抓包获取的发送给服务器端的数据:

 

服务器端以xml格式返回检测到的恶意应用信息,如下图所示:

然后将检测到的恶意应用包名、类型以及危险级别存入trojankill数据库的trojan_kill_result表中:

 

将查杀时间保存到"/data/data/shared_prefs/com.anguanjia.safe_preferences.xml"文件的"last_kill_date"字段中。然后将扫描结果、扫描类型和扫描到的恶意应用包名保存入ScanLogDb数据库的"ScanLogDb"表中:

 

全盘查杀

全盘扫描分两个部分进行:

(1)有sd卡挂载,则扫描sd卡所有文件,检测后缀为“apk”或者“APK”的所有文件,其检测步骤与快速查杀一样。

 

判断文件后缀:

 

(2)如果没有sd卡挂载,则扫描系统安装的所有应用。检测步骤与快速查杀一样。

被动查杀

被动查杀是在监控到应用被安装时进行病毒检测。首先,杀软会判断当前网络连接类型:

(1)如果没有连接网络或者连接的是非wifi网络,则按照快速查杀流程,查询本地数据库进行恶意应用的检测。

(2)如果是wifi网络,则将正在被安装应用的包名和md5值发送给服务器http://apk.scapi.aqgj.cn/xcloud/cloud.php,相关代码如下:

 

实际抓包获取到的数据如下图所示:

 

服务器返回应用的恶意行为信息、危险级别、md5值、包名等信息。下图为检测到恶意应用时服务器返回的信息:

 

下图为正常应用服务器返回的信息:

 

如果检测到恶意应用,则将恶意应用的包名、人气、评分、安全级别、恶意行为、评论信息等数据更新到appdata数据库的newapp表中。同时将病毒包名写入userhabit.xml文件中。

同时弹出安全提示窗口,要求用户确认是否删除。

 

并在通知栏弹出通知信息。


原文地址: http://www.cnblogs.com/goodhacker/p/5222096.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值