由于智能手机的普及,手机病毒逐渐走上前台,病毒的地下产业链也逐渐注意到这一块。总体来说,目前的手机病毒不像PC病毒那样(初期的pc病毒主要是为了显示黑客的个人能力)。手机病毒的初衷很简单,主要是为了窃取隐私和获取经济利益。
下面就简单的介绍一个android平台上手机病毒分析的大体流程,首先我们经常用到的两款工具是apktool和jd-gui,这两款工具是分析的利器。
当我们拿到一个安卓平台样本的时候,最先需要考虑的是获取他的文件的结构,apk包我们可以利用解压工具解压出来。不少的样本在加压之后我们可以在其中的解压文件中找到elf,so,apk等格式的文件,其中elf,so是linux平台上的文件,主要的作用有以下一些:网络通信,提权,修改文件系统,封装一些加密什么的功能函数。对于这些文件,我们可以利用IDA对其进行反汇编,如果没有加密的话我们可以查看器字串表,在其中我们可以比较容易的看到以下诸如卸载,获取超级用户等的指令。如果发现了apk格式的,那就得注意了,很有可能真正的恶意行为就是利用这个apk来实现的。
通常的状态下,我们时间比较充足的话,可以把样本放到android开发的虚拟手机中动态的跑一下,这个可以帮助我们建立一个比较直观的印象。比如不少的病毒就是安装之后无图标,伪装为系统服务等等,拦截短信(通常是特定的短信),开机或接收短信等自启动等等。这些我们都可以通过动态的方式观测到。
动态之后,对于比较简单的手机病毒,我们已经有了一个比较清醒的认识。接下来要做的就是静态分析了。静态分析的主要的作用为了弄清病毒的原理。将apk转化为dex格式,用JD-GUI进行反编译,我们可以得到近乎源码的样本代码。下面就是我分析的样本的主要功能部分。
1,获取手机信息,写入xml文件。


2,下载apk

3.获取imei ,imsi号码



4,上传IMEI,IMSI等信息

5卸载软件

6,发送短信



并不是说具有这些行为的就是恶意软件,判断他的标准主要是依据用户是否知情的情况,是否为用户带来损失。

分析完这些就结束了么,这显然是不对的。这只是对样本的一个大致的分析过程,最终的目的不是这些,而是为了检测和判断未知的样本,这就需要一个提取规则的过程,由于目前的手机病毒编写的语言是java这种高级语言,稍加修改就能使文件的二进制代码发生巨大的改边,采用PC上的特征码方法显然是不能有限的检测手机病毒的,这里我们可以用样本中的url,sp号码,包结构和函数等等来对未知病毒进行检测,个人觉得PC上的未知病毒检测对于手机病毒的检测还是有很大的借鉴作用的,由于他是使用高级语言来编写的,导致他的很多的恶意功能都是通过API来完成的,这样我们是不是可以借鉴PC上的API组合,API顺序流的办法来检测呢。这些值得我们来关注。

目前手机病毒病毒才刚刚起步,考虑到未来移动终端的普及和目前各大厂商纷纷抢占智能手机市场,手机病毒必定会像PC病毒一样泛滥起来,而且由于手机的私密性和具有支付功能等等,一旦发生安全事件,必定会造成巨大的损失,由于骇客的趋利性,他们的病毒制作技术必定会越发高明,安全之路任重而道远。

更多相关文章

  1. 电脑通过豌豆荚连接手机或者平板不成功,豌豆荚版本6.8.*
  2. 电脑无法识别MX4和Android手机的问题(windows和mac下亲测)
  3. Android(安卓)各大手机品牌手机跳转到权限管理界面
  4. Android开发学习指南,同时庆祝第二款手机软件发布
  5. 手机管理应用研究【4】—— 手机加速篇
  6. ComScore:Android(安卓)以 44% 在美国智能手机市场拉开与 Apple
  7. Android(安卓)11正式发布:小米、OPPO等手机将陆续更新
  8. android无法找到连接的设备 ADB占用解决
  9. Googorola对中国市场的影响

随机推荐

  1. 一维数组排序,保留key值
  2. 云服务器为什么要设置防火墙?怎么设置防火
  3. 静态延迟绑定及静态单例模式加载以及单例
  4. 原生分页,文件上传后端要做哪些拦截,.事
  5. 基于VUE的后台管理系统
  6. MyCms 自媒体 CMS v3.0,资源推送优化,新增
  7. 如何绘制动漫人物头发?简单手绘动漫女生发
  8. 登陆验证码实例、接口初识
  9. Docker 安装 mysql8
  10. Linux 发行版更新软件源