一种Android程序行为的监控方法及监控系统的制作方法

文档序号:6493510阅读:583来源:国知局
一种Android程序行为的监控方法及监控系统的制作方法
【专利摘要】本发明属于计算机【技术领域】,具体公开了一种Android程序行为的监控方法及监控系统。该方法包括以下步骤:通过注入程序将So动态库文件注入到系统所有进程中;通过所述So动态库文件监控系统中运行的Android程序行为。该系统包括对应的注入模块和监控模块。本发明利用So动态库文件的代理函数替换现有的系统函数,进而在完成现有系统函数相同功能的情况下,记录其运行行为,可使得程序分析效率和准确率都更高。不仅如此,难以阅读的加密程序,在其运行时其相关行为则无处遁形。因此,本发明相对于现有分析方法分析效率和准确率都更高。
【专利说明】—种Android程序行为的监控方法及监控系统
【技术领域】
[0001]本发明属于计算机【技术领域】,具体涉及一种Android程序行为的监控方法及监控系统。
【背景技术】
[0002]Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于便携设备,如智能手机和平板电脑。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良随后,逐渐扩展到平板电脑及其他领域上。第一部Android智能手机发布于2008年10月。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
[0003]APK 是 Android Package 的缩写,即 Android 安装包(APK)。APK 是类似 SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。APK文件和sis—样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex 文件,Dex 是 Dalvik VM executes 的全称,即 Android Dalvik 执行程序,并非 Java ME的字节码而是Dalvik字节码。
[0004]目前,对于未知的可疑的APK程序,是采用人工静态分析的方法,分析其运行时是否具有恶意行为,从而辨别该未知程序是否为病毒程序。此种方法,不仅分析速度慢,而且对于一些加密程序无法分析。

【发明内容】

[0005]为了解决上述问题,本发明的目的在于提供一种Android程序行为的监控方法及监控系统,以提高Android程序行为的分析效率。
[0006]为了实现上述发明目的,得到了以下技术方案:
[0007]一种Android程序行为的监控方法,包括以下步骤:
[0008]通过注入程序将So动态库文件注入到系统所有进程中;
[0009]通过所述So动态库文件监控系统中运行的Android程序行为。
[0010]进一步的,所述通过所述So动态库文件监控系统中运行的Android程序行为,具体是:
[0011]通过So动态库文件中的挂钩导入表程序将系统导入表中记录的系统函数地址修改为代理函数地址;
[0012]启动运行所述可疑Android程序;
[0013]当所述可疑Android程序运行过程中调用系统函数时,通过代理函数代替所述系统函数执行相应的动作,并记录相应的程序行为。[0014]一种Android程序行为的监控系统,包括以下模块:
[0015]注入模块,用于通过注入程序将So动态库文件注入到系统所有进程中;
[0016]监控模块,用于通过所述So动态库文件监控系统中运行的Android程序行为。
[0017]进一步的,所述监控模块包括以下子模块:
[0018]修改子模块,用于通过So动态库文件中的挂钩导入表程序将系统导入表中记录的系统函数地址修改为代理函数地址;
[0019]启动子模块,用于启动运行所述可疑Android程序;
[0020]行为记录模块,用于当所述可疑Android程序运行过程中调用系统函数时,通过代理函数代替所述系统函数执行相应的动作,并记录相应的程序行为。
[0021]本发明利用So动态库文件的代理函数替换现有的系统函数,进而在完成现有系统函数相同功能的情况下,记录其运行行为,可使得程序分析效率和准确率都更高。不仅如此,难以阅读的加密程序,在其运行时其相关行为则无处遁形。因此,本发明相对于现有分析方法分析效率和准确率都更高。
【专利附图】

【附图说明】
[0022]此【专利附图】
附图
【附图说明】所提供的图片用来辅助对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的不当限定,在附图中:
[0023]图1是本发明方法对应的流程图;
[0024]图2是图1第(2)步的流程图;
[0025]图3是本发明系统对应的框图;
[0026]图4是本发明系统监控模块的框图。
【具体实施方式】
[0027]实施例1
[0028]如图1所示,本实施例公开了一种Android程序行为的监控方法,包括以下步骤:
[0029](I)通过注入程序将So动态库文件注入到系统所有进程中;该So动态库文件包括挂钩导入表程序和代理函数;其中,挂钩导入表程序的作用就是将调用函数的地址改为代理函数的地址;其中,代理函数是与系统函数功能相同的函数,该代理函数在执行系统函数相同功能的同时,还可记录该代理函数的运行行为;
[0030](2)通过所述So动态库文件监控系统中运行的Android程序行为。
[0031]如图2所示,第(2)步通过所述So动态库文件监控系统中运行的Android程序行为,具体是:
[0032](21)通过So动态库文件中的挂钩导入表程序将系统导入表中记录的系统函数地址修改为代理函数地址;导入表就是用来记录各个系统函数调用地址的,本步骤将其修改为代理函数的地址,可实现代理原来系统函数的目的;
[0033](22)启动运行所述可疑Android程序;
[0034](23)当所述可疑Android程序运行过程中调用系统函数时,通过代理函数代替所述系统函数执行相应的动作,并记录相应的程序行为。
[0035]如图3所示,本实施例还公开了一种与上述方法对应的系统,包括以下模块:[0036]注入模块1,用于通过注入程序将So动态库文件注入到系统所有进程中;
[0037]监控模块2,用于通过所述So动态库文件监控系统中运行的Android程序行为。
[0038]如图4所示,所述监控模块2包括以下子模块:
[0039]修改子模块21,用于通过So动态库文件中的挂钩导入表程序将系统导入表中记录的系统函数地址修改为代理函数地址;
[0040]启动子模块22,用于启动运行所述可疑Android程序;
[0041]行为记录模块23,用于当所述可疑Android程序运行过程中调用系统函数时,通过代理函数代替所述系统函数执行相应的动作,并记录相应的程序行为。
[0042]本实施例通过So动态库文件的代理函数替换现有的系统函数,进而在完成现有系统函数相同功能的情况下,记录其运行行为,可使得程序分析效率和准确率都更高。不仅如此,难以阅读的加密程序,在其运行时其相关行为则无处遁形。因此,本发明相对于现有分析方法分析效率和准确率都更高。
[0043]以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本【技术领域】中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。
【权利要求】
1.一种Android程序行为的监控方法,其特征在于包括以下步骤: 通过注入程序将So动态库文件注入到系统所有进程中; 通过所述So动态库文件监控系统中运行的Android程序行为。
2.根据权利要求1所述的Android程序行为的监控方法,其特征在于,所述通过所述So动态库文件监控系统中运行的Android程序行为,具体是: 通过So动态库文件中的挂钩导入表程序将系统导入表中记录的系统函数地址修改为代理函数地址; 启动运行所述可疑Android程序; 当所述可疑Android程序运行过程中调用系统函数时,通过代理函数代替所述系统函数执行相应的动作,并记录相应的程序行为。
3.一种Android程序行为的监控系统,其特征在于包括以下模块: 注入模块,用于通过注入程序将So动态库文件注入到系统所有进程中; 监控模块,用于通过所述So动态库文件监控系统中运行的Android程序行为。
4.根据权利要求3所述的Android程序行为的监控系统,其特征在于,所述监控模块包括以下子模块: 修改子模块,用于通过So动态库文件中的挂钩导入表程序将系统导入表中记录的系统函数地址修改为代理函数地址; 启动子模块,用于启动运行所述可疑Android程序; 行为记录模块,用于当所述可疑Android程序运行过程中调用系统函数时,通过代理函数代替所述系统函数执行相应的动作,并记录相应的程序行为。
【文档编号】G06F21/56GK103902890SQ201210567868
【公开日】2014年7月2日 申请日期:2012年12月24日 优先权日:2012年12月24日
【发明者】林坚明, 杨启东 申请人:珠海市君天电子科技有限公司, 北京金山安全软件有限公司, 贝壳网际(北京)安全技术有限公司, 北京金山网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1