欢迎来到天天文库
浏览记录
ID:31355969
大小:112.00 KB
页数:8页
时间:2019-01-09
《安卓xposed框架安全应用研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、安卓Xposed框架安全应用研究 摘要:Xposed是安卓系统下的框架服务程序,可通过hook原有函数在不修改系统app的情况下改变系统配置,影响系统运行。基于Xposed框架可以开发许多功能强大的应用模块,在安全方面有非常广阔的前景。介绍了Xposed框架的基本情况和发展趋势;分析了该框架的实现原理及其底层结构;研究了Xposed模块的加载过程。重点对Xposed在未来手机安全方面的应用进行了研究。 关键词:Xposed;框架安全;应用研究 中图分类号:TP393文献标识码:A文章编号:1009-3044(2016)10-0049-03 1概述 Xposed
2、框架是在著名的智能手机开发者论坛XDA上诞生的一款特殊的安卓APP,由开发者rovo98进行开发和升级。Xposed作为安卓系统下的框架服务程序,可以在不修改系统apk的情况下改变系统配置,影响系统运行。其主要功能是建立了一个模块安装平台,在安装Xposed框架之后,使用者可以通过安装Xposed模块应用的方式,实现强大的功能。Xposed框架类似于越狱后的iOS系统Cydia平台,但由于安卓系统的开源性,Xposed框架可以提供更丰富的功能并让用户获得更好的体验。8 Xposed框架的原理是通过修改和替换系统文件进而hook整个系统,所以基于Xposed框架开发系统
3、级应用的难度大大降低。目前Xposed框架下的模块多以优化系统运行速度、美化界面和提供便捷操作等功能为主,为数不多的安全类模块均由外国开发者编写,如绿色守护等模块还需要支付费用才可获得全部功能,且安全应用多以软件权限控制为主,并没有充分利用Xposed框架的强大功能,目前越来越多的开发者开始关注Xposed,出现利用Xposed框架编写的密码破解程序和针对安卓漏洞masterkey的Xposed框架检测模块和补丁程序,因此利用Xposed框架进行安全方面应用开发前景非常广阔。 2Xposed框架分析 2.1Xposed框架实现原理和结构 Xposed框架的运作原理
4、是劫持了安卓程序进程的启动过程,正常的安卓程序在启动时的过程首先要启用zygote进程,zygote是安卓进程的孵化器,其功能是创建Dalvik虚拟机实例,并为Dalvik虚拟机加载资源,Dalvik虚拟机启动完成后就实现各子模块的初始化,并且加载了相应的Java核心类库,这样就可执行Java代码进而执行安卓程序[1]。 Xposed框架实现功能是通过修改/system/bin/app_process文件进而hook系统函数,app_process文件是zygote孵化器在创建dalvik虚拟机时调用的文件,其功能是启动安卓系统运行时库并启动虚拟机,修改后的文件可以实
5、现在dalvik虚拟机创建时hook进而获取权限,Xposed实现各种功能的前提是hook系统函数,Xposed框架实现hook的原理是将需要hook的函数替换成Native方法XposedCallHandler,Dalvik虚拟机在解释执行函数时,遇到在执行中被hook的函数,就会直接调用XposedCallHandler,XposedCallHandler再调用8XposedBridge类的handleHookedMethod完成注册的beforeHookedMethod以及afterHookedMethod的调用,这两类回调函数之间,会调用原始函数,完成正常的功能
6、。 2.2Xposed框架结构 Xposed框架基本分为以下四个部分组成: 1)Xposed:Xposed是用c++编写而成的,其功能是替换系统中的/system/bin/app_process文件,并为XposedBridge提供JNI(Java本地接口)方法,实现Java和c++之间的通信; 2)XposedBridge:Xposedbridge是Xposed提供的jar文件,在app_process启动时系统会自动加载该文件以达到hook目的,Xposedbridge是其他模块开发的基础; 3)XposedInstaller:Xposed的安装文件,提供
7、Xposed框架安装功能和模块安装与下载和管理等功能,是Xposed框架的管理软件; 4)XposedMods:XposedMods是基于Xposed框架开发的应用模块实现了强大而丰富的功能。 Xposedc++源码[2]下载地址为http://github.com/rovo89/Xposed。主要包括如下文件: 1)app_main.cpp:app_main.cpp的作用是修改和替换安卓系统框架中的app_main.cpp文件,app_main.cpp文件的内容就是/system/bin/app_process文件的代码,在安卓程
此文档下载收益归作者所有