一种跟踪Android程序行为的方法及系统
技术领域
本发明属于病毒防御技术领域,具体涉及一种跟踪Android程序行为的方法及系统。
背景技术
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由AndyRubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
反汇编:把目标代码转为汇编代码的过程,也可说是把机器语言转为汇编语言代码,低级转高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机。),外挂技术,病毒分析,逆向工程,软件汉化。通常,编写程序是利用高级语言如C,pascal等高级语言进行编程的,然后再经过编译程序生成可以被计算机系统直接执行的文件(机器语言)。反汇编即是指将这些执行文件反编译还原成汇编语言或其他高级语言。但通常反编译出来的程序与原程序会存在些许不同,虽然执行效果相同,但程序代码会发生很大的变化,要读懂反汇编需要有扎实的高级语言编写功底,和汇编功底。目前网络上的免费软件,PSP PS NDS游戏机的破解和苹果iOS系统的越狱都跟反汇编息息相关。
随着Android系统的不断普及,各种Android病毒程序也日渐兴起,目前面对这些程序的分析方法通常就是将其反编译成明文,然后人工逐一分析器程序行为,进而判断其是否具有一些恶意行为,比如:删除系统文件等等。这种方法不仅效率低下,而且通常病毒制作者也会对程序加密,反编译出来是一些乱码,根本无法分析。
发明内容
为了解决上述问题,本发明的目的在于提供一种跟踪Android程序行为的方法及系统,以自动分析和监控其运行行为。
为了实现上述发明目的,基于上述研究发现,得到了以下技术方案:
一种跟踪Android程序行为的方法,包括以下步骤:
解包并反汇编所述Android程序;
插入监控程序段至反汇编后的Android程序中,所述监控程序段用于监控所述Android程序运行过程中的运行行为;
汇编并打包插入了监控程序段的Android程序;
运行重新汇编后的Android程序,并通过所述监控程序段获取该Android程序的运行行为数据。
进一步的,所述的运行行为包括调用系统函数行为。
进一步的,所述运行行为数据包括传入参数、传出参数、以及返回值。
进一步的,所述运行重新汇编后的Android程序,具体是:将重新汇编后的Android程序置于设备模拟器或真实设备中运行。
一种跟踪Android程序行为的系统,包括以下模块:
解包和反汇编模块,解包并反汇编所述Android程序;
监控程序插入模块,插入监控程序段至反汇编后的Android程序中,所述监控程序段用于监控所述Android程序运行过程中的运行行为;
汇编和打包模块,汇编并打包插入了监控程序段的Android程序;
模拟运行模块,运行重新汇编后的Android程序,并通过所述监控程序段获取该Android程序的运行行为数据。
进一步的,所述的运行行为包括调用系统函数行为。
进一步的,所述运行行为数据包括传入参数、传出参数、以及返回值。
进一步的,所述运行重新汇编后的Android程序,具体是:将重新汇编后的Android程序置于设备模拟器或真实设备中运行。
本发明通过插入监控程序段,然后通过监控程序段在Android程序运行过程中获取其运行行为数据,根据这些运行行为数据即可知道该Android程序是否为病毒程序。此过程不仅可以自动完成提高分析效率,而且对加密后的Android程序也可以进行分析。
附图说明
此附图说明所提供的图片用来辅助对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的不当限定,在附图中:
图1是本发明方法对应的流程图;
图2是本发明系统对应的框图。
具体实施方式
如图1所示,本实施例公开了一种跟踪Android程序行为的方法,包括以下步骤:
Step1:解包并反汇编所述Android程序;所谓的解包就是压包的反过程,即将压包文件还原成原来的文件;所谓的反汇编就是把目标代码转为汇编代码的过程,也可说是把机器语言转为汇编语言代码,低级转高级的意思;本步骤采用现有的解包和反汇编各种方法,即可完成。
Step2:插入监控程序段至反汇编后的Android程序中,所述监控程序段用于监控所述Android程序运行过程中的运行行为,所述的运行行为包括调用系统函数行为;程序的行为基本都是体现在函数调用上,通过监控系统函数的调用行为可以了解该Android程序是否存在比如删除重要数据、修改系统重要参数、窃取用户信息等恶意行为。
Step3:汇编并打包插入了监控程序段的Android程序,本步骤就是将其转换成目标代码以供机器执行。
Step4:运行重新汇编后的Android程序,具体是:将重新汇编后的Android程序置于设备模拟器或真实设备中运行;并通过所述监控程序段获取该Android程序的运行行为数据,所述运行行为数据包括传入参数、传出参数、以及返回值;通过其传入参数、传出参数、以及返回值就可以完全掌握其运行行为,进而直观分析出该Android程序是否为病毒程序。
本实施例还公开了一种跟踪Android程序行为的系统,包括以下模块:
解包和反汇编模块1,解包并反汇编所述Android程序;
监控程序插入模块2,插入监控程序段至反汇编后的Android程序中,所述监控程序段用于监控所述Android程序运行过程中的运行行为,所述的运行行为包括调用系统函数行为;
汇编和打包模块3,汇编并打包插入了监控程序段的Android程序;
模拟运行模块4,运行重新汇编后的Android程序,并通过所述监控程序段获取该Android程序的运行行为数据,所述运行行为数据包括传入参数、传出参数、以及返回值。所述运行重新汇编后的Android程序,具体是:将重新汇编后的Android程序置于设备模拟器或真实设备中运行。
本发明通过插入监控程序段,然后通过监控程序段在Android程序运行过程中获取其运行行为数据,根据这些运行行为数据即可知道该Android程序是否为病毒程序。
以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。