您的位置:首页 > 移动开发 > Android开发

一个简短的android病毒分析

2015-07-07 11:34 337 查看
由于智能手机的普及,手机病毒逐渐走上前台,病毒的地下产业链也逐渐注意到这一块。总体来说,目前的手机病毒不像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顺
序流的办法来检测呢。这些值得我们来关注。

原址:http://bbs.pediy.com/showthread.php?p=1124714
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: