本文章由Jack_Jia编写,转载请注明出处。
文章链接: http://blog.csdn.net/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. 打开特定平台的广告
四、相关链接
http://www.symantec.com/security_response/writeup.jsp?docid=2013-012916-2128-99 http://en.nq.com/blog/?p=2155

更多相关文章

  1. Android面向切面编程(AOP)浅析
  2. Eclipse中如何关联android sdk源码
  3. [置顶] MTK Android(安卓)编译小结
  4. AspectJ in Android(安卓)(一),AspectJ 基础概念
  5. android常见对话框(AlertDialog)总结 一
  6. Android(安卓)TabViewActivity中overridePendingTransition失效
  7. Android(安卓)打造万能适配器
  8. Android(安卓)Glide Error:Failed to resolve: com.github.bumpt
  9. android native crash日志解析

随机推荐

  1. Android(安卓)socket编程要点
  2. Android里把Dialog设置为全屏的方法
  3. Android(安卓)JetPack——DataBinding
  4. android中使用SurfaceView做视频播放器--
  5. 【收藏】Android开源项目和 框架
  6. android 8.0报错 Only fullscreen opaque
  7. Android(安卓)关于 OnScrollListener 事
  8. android.view.ViewRootImpl$CalledFromWr
  9. Android之TabHost
  10. SDK + ADT + Android(安卓)Studio 国内下