本文章由Jack_Jia编写,转载请注明出处。
文章链接: http://blog.youkuaiyun.com/jiazhijun/article/details/8623275
作者:Jack_Jia 邮箱: 309zhijun@163.com
文章链接: http://blog.youkuaiyun.com/jiazhijun/article/details/8623275
作者:Jack_Jia 邮箱: 309zhijun@163.com
一、序言
随着Android手持设备数量的飞速增长,越来越多的病毒开发者开始聚焦到Android平台。为了躲避杀毒软件的查杀,病毒代码的复杂度也在不断的提高,这从一定程度上增加了病毒分析的难度。
Extension Android手机病毒就是其中的一个例子,该病毒使用了J2EE开发中经常使用的
AspectJ (
http://www.aspectj.org/
)框架,
Aspect
J 可以为开发者自动生成大量的代码,而这些自动生成代码给病毒分析人员带来了很大的难度。
Extension 是一种注入型手机病毒,它通过注入其它流行应用来进行传播。
二、
病毒样本基本信息
Md5:4cd446761d734ea8e398e0fb996cf5ea
Package:com.zwx.flyapp

三、病毒代码分析
1、查看AndroidManifest.xml文件恶意获取恶意注入的组件信息。
通过配置文件可以看出,当设备启动、接收短信、来电等情况下恶意代码会被执行。

2、通过代码入口点分析恶意代码行为。
恶意注入代码的代码树如下:

当设备启动后com.android.damon.core.boot.OnBootReceiver组件代码将被调用,该组件代码如下:

当接收到新短信时com.android.damon.core.boot.OnSMSReceiver组件代码将被调用,该组件代码如下:

通过以上两个组件的代码可以看出该病毒代码使用了AspectJ框架开发,如果需要读懂该代码就必须对AspectJ框架有所了解。这里不在对AspectJ框架做进一步的扩展讨论。
恶意代码将在运行时下载以下两个文件:
(1)release.xml
AspectJ框架需要在运行时读取该配置文件创建相应对象。该文件的部分内容如下:


(2)Extension-v1.6.apk
该文件经过DES加密算法加密。恶意代码将在运行时通过Loader.java类解密该文件,并在运行时通过DexClassLoader动态加载该文件中的代码。DES密钥信息存储在libCoreNative.so文件中。该文件解密后的代码结构如下:
通过以下代码可以清晰的看出该病毒的恶意行为:

1. 拦截特定号码的呼入和呼出
2. 拦截特定号码短信的接收和发送
3. 通过浏览器自动访问特定的网址
4. 呼叫特定号码
5. 发送特定短信
6. 发送电话呼叫记录、联系人信息和位置信息到服务器
7. 打开特定平台的广告
四、相关链接