当前位置: 首页 > 专利查询>西北大学专利>正文

一种快速定位Android敏感功能对应的驱动文件位置的方法技术

技术编号:13972213 阅读:53 留言:0更新日期:2016-11-10 22:13
本发明专利技术公开了一种快速定位Android敏感功能对应的驱动文件位置的方法,根据writev函数中的某一个参数名称是否能够明确表示某一个敏感操作,采用不同方法确定驱动文件的位置,使得本发明专利技术的方法适应性强,实现快速准确的定位驱动文件的位置;发明专利技术的方法在检测Android经过定制而产生的驱动文件权限漏洞的方法中,相比静态分析,此方法对于驱动文件的定位速度更快更便捷。

【技术实现步骤摘要】

本专利技术属于Android架构中内核层安全领域,涉及一种快速定位Android敏感功能对应的驱动文件位置的方法
技术介绍
如今,智能手机产业迅速发展,智能手机使用也已遍及千家万户,同时,Android因为它自身的开放性,成为用户量最大的智能手机操作系统。Google官方发布Android新版本后,厂商为了提升市场竞争力,并与其它竞争厂商的手机进行区分,就会通过修改源代码对Android版本进行定制。其中,厂商为适应自己开发的功能,将Android定制后有可能造成整个Android体系架构及文件功能映射关系发生改变,给分析Android系统体系以及缺陷检测造成了困难,尤其是只有识别敏感功能所对应的驱动文件,才能进一步针对驱动文件进行安全监测。因此,定位驱动文件与其相对应的敏感功能显得尤为重要。由于厂商对Android的修改,与Google发布的官方版本无论从文件层次结构还是文件名、参数、文件位置都有较大程度的不同,所以,如何定位敏感功能所对应的驱动文件的位置就成为了进行后续检测的关键步骤。针对Android敏感功能所对应的Android LinuxKernel层的驱动文件位置的定位方法,一般的检测方法主要是静态定位,即通过比较定制后的Android源代码和Google发布的Android官方源代码,从而发现Android应用程序层的敏感功能(拍照、获取位置信息等),在AndroidLinuxKernel层对应的驱动文件的绝对路径。但是,此类方法存在以下不足:1、厂商在修改源代码时,对于驱动文件的文件名、参数也进行了修改,通过源代码比较很难找出驱动文件和相关敏感功能两者之间的映射关系;2、厂商不会公布定制后的Android源码,对检测工作产生了阻碍;3、整体检测源代码过程冗杂,效率较低。
技术实现思路
针对上述现有技术中存在的缺陷和不足,本专利技术的目的在于,提供一种快速定位Android敏感功能对应的驱动文件位置的方法,该方法在设备运行时对驱动文件进行功能定位,无需查看源代码。为了实现上述目的,本专利技术采用如下技术方案:一种快速定位Android敏感功能对应的驱动文件位置的方法,包括以下步骤:步骤1:针对具体的敏感功能编写测试应用,敏感功能包括多个敏感操作;步骤2:下载Linux的调试工具strace的源代码,对strace的源代码进行交叉编译,生成适应Android的strace可执行文件;将strace可执行文件拷贝到定制的Android设备上;步骤3:在拷贝了strace可执行文件的Android设备上安装步骤1中的测试应用;获取Android设备上正在运行的所有系统服务进程;执行Android设备上的strace可执行文件,对所有系统服务进程进行监测;开启测试应用,调用Android Linux Kernel层的驱动文件,生成监视日志文件;步骤4:查找监视日志文件中的相关调用函数,相关调用函数包括open函数、openat函数和writev函数;若writev函数中的某一个参数名称能够明确表示某一个敏感操作,则执行步骤5,否则执行步骤6;步骤5:根据敏感功能包括的所有敏感操作,查找出writev函数中表示敏感操作的参数,并在open函数或openat函数中找出表示与敏感操作对应的驱动文件的文件节点的参数;根据驱动文件的文件节点确定驱动文件的位置,得到敏感功能对应的所有驱动文件的位置;步骤6:多次重复执行步骤3,获取多个监视日志文件,查找多个监视日志文件中的writev函数的参数,若writev函数的某一参数在多个监视日志文件中重复出现,则该参数表示的是某一敏感操作,在open函数或openat函数中找出表示与敏感操作对应的驱动文件的文件节点的参数,根据驱动文件的文件节点确定驱动文件的位置;查找所有重复出现的writev函数的参数,得到敏感功能对应的所有驱动文件的位置。具体地,所述步骤2中的下载Linux的调试工具strace的源代码,对strace的源代码进行交叉编译,生成适应Android的strace可执行文件,其具体包括以下步骤:下载strace的源代码;在PC平台上使用arm架构编译器对strace的源代码进行交叉编译,生成适应Android的strace可执行文件。具体地,所述步骤3中的获取Android设备上正在运行的所有系统服务进程,其具体包括以下步骤:启动Android设备中的adb,利用adb shell获取Android设备正在运行的所有系统服务进程。与现有技术相比,本专利技术具有以下技术效果:1、本专利技术的方法为动态检测方法,无需查看源代码。2、采用电脑、数据线和安卓设备即可完成,设备简单。3、根据writev函数中的某一个参数名称是否能够明确表示某一个敏感操作,采用不同方法确定驱动文件的位置,使得本专利技术的方法适应性强,实现快速准确的定位驱动文件的位置。4、本专利技术的方法在检测Android经过定制而产生的驱动文件权限漏洞的方法中,相比静态分析,此方法对于驱动文件的定位速度更快更便捷。下面结合附图和具体实施方式对本专利技术的方案做进一步详细地解释和说明。附图说明图1为检测系统结构流程;图2为strace的使用帮助信息;图3为系统服务进程所在列表;图4为生成日志文件的截取;图5为监测文件的结果。具体实施方式本专利技术根据Android系统基于Linux Kernel以及进程间通信的特点,提出一种针对Android应用层的敏感功能,定位Android Linux Kernel层驱动文件的动态方法,使用调试工具strace在测试应用软件运行时监视各类驱动的系统服务进程,从而获取底层驱动文件的文件节点,进一步精确定位驱动文件。参见图1,本专利技术的快速定位Android敏感功能对应的驱动文件位置的方法,包括以下步骤:步骤1,针对某一具体的敏感功能编写测试应用,敏感功能包括多个敏感操作。敏感功能指的是在Android应用程序层,允许应用访问用户隐私信息(如:照片、声音、位置)的功能。敏感操作指的是在Android Linux Kernel层,与敏感功能相关的内核层的操作。测试应用指的是具备单一敏感功能的Android应用,为了使Android系统在完成敏感功能时,调用Android Linux Kernel层的驱动文件。本实施例以照相这一敏感功能为例,所编写的测试应用能够实现打开摄像头、拍照和存储照片等敏感操作。步骤2,下载Linux的调试工具strace的源代码,对strace的源代码进行交叉编译,生成适应Android的strace可执行文件;将strace可执行文件拷贝到定制的Android设备上;具体包括以下步骤:步骤2.1:下载strace的源代码(本专利技术中使用的是strace 4.10),图2给出了strace使用帮助信息;在PC平台(本专利技术中使用的是Linux-Ubuntu 14.04)上使用arm架构编译器对strace的源代码进行交叉编译,生成适应Android的strace可执行文件;具体编译命令如下:CC=arm-linux-gccLD=arm-linux-ldRANLIB=arm-linux-ranlib./configure--prefix=/home/lihaoc本文档来自技高网
...

【技术保护点】
一种快速定位Android敏感功能对应的驱动文件位置的方法,其特征在于,包括以下步骤:步骤1:针对具体的敏感功能编写测试应用,敏感功能包括多个敏感操作;步骤2:下载Linux的调试工具strace的源代码,对strace的源代码进行交叉编译,生成适应Android的strace可执行文件;将strace可执行文件拷贝到定制的Android设备上;步骤3:在拷贝了strace可执行文件的Android设备上安装步骤1中的测试应用;获取Android设备上正在运行的所有系统服务进程;执行Android设备上的strace可执行文件,对所有系统服务进程进行监测;开启测试应用,调用Android Linux Kernel层的驱动文件,生成监视日志文件;步骤4:查找监视日志文件中的相关调用函数,相关调用函数包括open函数、openat函数和writev函数;若writev函数中的某一个参数名称能够明确表示某一个敏感操作,则执行步骤5,否则执行步骤6;步骤5:根据敏感功能包括的所有敏感操作,查找出writev函数中表示敏感操作的参数,并在open函数或openat函数中找出表示与敏感操作对应的驱动文件的文件节点的参数;根据驱动文件的文件节点确定驱动文件的位置,得到敏感功能对应的所有驱动文件的位置;步骤6:多次重复执行步骤3,获取多个监视日志文件,查找多个监视日志文件中的writev函数的参数,若writev函数的某一参数在多个监视日志文件中重复出现,则该参数表示的是某一敏感操作,在open函数或openat函数中找出表示与敏感操作对应的驱动文件的文件节点的参数,根据驱动文件的文件节点确定驱动文件的位置;查找所有重复出现的writev函数的参数,得到敏感功能对应的所有驱动文件的位置。...

【技术特征摘要】
1.一种快速定位Android敏感功能对应的驱动文件位置的方法,其特征在于,包括以下步骤:步骤1:针对具体的敏感功能编写测试应用,敏感功能包括多个敏感操作;步骤2:下载Linux的调试工具strace的源代码,对strace的源代码进行交叉编译,生成适应Android的strace可执行文件;将strace可执行文件拷贝到定制的Android设备上;步骤3:在拷贝了strace可执行文件的Android设备上安装步骤1中的测试应用;获取Android设备上正在运行的所有系统服务进程;执行Android设备上的strace可执行文件,对所有系统服务进程进行监测;开启测试应用,调用Android Linux Kernel层的驱动文件,生成监视日志文件;步骤4:查找监视日志文件中的相关调用函数,相关调用函数包括open函数、openat函数和writev函数;若writev函数中的某一个参数名称能够明确表示某一个敏感操作,则执行步骤5,否则执行步骤6;步骤5:根据敏感功能包括的所有敏感操作,查找出writev函数中表示敏感操作的参数,并在open函数或openat函数中找出表示与敏感操作对应的驱动文件的文件节点的参数;根据驱动文件的文件节点确定驱动文件的位置,得到敏感功能对应的...

【专利技术属性】
技术研发人员:汤战勇李浩存李政桥周祥房鼎益陈晓江龚晓庆赵贝贝陈峰
申请(专利权)人:西北大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1