一种Android系统应用Hook方法及应用锁技术方案

技术编号:17033355 阅读:39 留言:0更新日期:2018-01-13 19:39
本发明专利技术提出一种Android系统应用Hook方法及应用锁;该方法包括:根据功能需求为Android系统实现Java Hook类;将Java Hook类和Hook文件打包到Android应用安装包中;对应用启动流程Hook时从安装包文件中提取出Hook文件;生成Java Hook类的Hook文件执行需要的参数,并通过文件的方式传递;执行注入可执行文件时,根据传递的执行时需要的参数注入到目标进程中,在目标进程中加载动态链接库文件;动态链接库文件加载安装包文件,解析出Java Hook类并执行。所述Android系统应用锁包括:Hook模块、加锁模块、解锁模块。在首次启动Android系统应用锁时执行Hook模块,拦截应用启动流程,将启动应用变为执行应用锁的解锁模块,无需在其他平台上执行,在Android系统直接实现对应用的加解锁。

【技术实现步骤摘要】
一种Android系统应用Hook方法及应用锁
本专利技术属于移动互联网网络安全
,具体涉及一种Android系统应用Hook方法及应用锁。
技术介绍
应用锁APP是一种能将手机中的应用加锁的APP,用户选择加锁的应用并设置密码之后,再次点击应用图标,需要先输入解锁密码才能进入应用。现有技术中,已有微锁屏和MaxLock应用锁APP。微锁屏是一款手机锁屏APP,主要功能是为手机提供丰富,美观的锁屏主题,在其工具箱中包含应用锁功能。微锁屏的应用锁功能的技术原理是调用系统接口,不断轮询当前运行的应用,若为加锁应用,则展示锁屏界面。用户正确输入密码之后再撤回锁屏界面。MaxLock是基于Xposed框架的应用锁。用户在使用MaxLock之前,需要先下载并安装Xposed框架,然后才能安装使用MaxLock对应用进行加锁。MaxLock作为Xposed的一个模块运行,原理是利用了AndroidJava虚拟机中JNI机制的不足,变相实现了Hook。这些已有的锁屏APP有一定的技术缺陷。微锁屏采用轮询的方式虽然简单,但是需要后台不断侦听,对手机电量,性能存在损耗。另外由于微锁屏是通过界面的替换实现的假加锁,如果用户按下返回键,就可以绕过解锁;如果微锁屏屏蔽返回键,用户按下返回键时系统无响应,降低了用户友好性。MaxLock需要先安装Xposed框架,针对性不强,且用户安装麻烦,难以使用。
技术实现思路
针对现有应用锁的不足,本专利技术提出一种Android系统应用Hook方法及应用锁。本专利技术的技术方案是:一种Android系统应用Hook方法,包括:步骤1:根据功能需求为Android系统实现JavaHook类;步骤2:将JavaHook类和Hook文件打包到Android应用安装包中;步骤3:对应用启动流程Hook时从Android系统自动备份的安装包文件中提取出Hook文件;步骤4:生成JavaHook类的Hook文件执行需要的参数,并通过文件的方式传递;步骤5:执行注入可执行文件时,注入可执行文件根据传递的执行时需要的参数注入到目标进程中,在目标进程中加载动态链接库文件;动态链接库文件加载安装包文件,解析出JavaHook类并执行,完成对应用启动流程的Hook。所述步骤1,具体是通过阅读Android系统应用启动部分的源代码,找到其中能够被拦截的点,使用Java反射和代理原理,实现为JavaHook类,拦截应用启动流程,将启动应用变为执行解锁操作。所述步骤2,所述Hook文件包括注入可执行文件和动态链接库文件,分别用作注入可执行文件和注入目标进程,动态链接库文件在目标进程中加载JavaHook类。所述步骤3,使用Android系统命令unzip,解压安装包文件,提取出Hook文件并增加JavaHook类的Hook文件的可执行权限。所述步骤4,使用Android系统命令ps,获取Android系统桌面进程的进程号,调用Android系统API获取安装包的安装路径,并将这些作为执行需要的参数按照指定的格式写入文件,传递执行时需要的参数。基于所述的Android系统应用Hook方法实现的Android系统应用锁,包括:Hook模块,基于上述Android系统应用Hook方法实现,在首次启动Android系统应用锁时执行,拦截应用启动流程,使得点击桌面图标的操作不启动应用,而是将启动应用变为执行解锁模块;加锁模块;根据用户的加锁请求对Android系统的多个应用执行加锁操作,并将密码存储在密码文件中;解锁模块:在加锁模块存储的密码文件中搜索判断当前启动应用是否已经执行加锁操作:若已经执行加锁操作,则根据用户输入的正确密码启动该应用;若未执行加锁操作,则直接启动该应用。所述加锁模块能为不同的应用设置不同的密码,将用户设置的密码根据不同类型的密码样式编码,并使用MD5算法加密存储在密码文件中。本专利技术的优点:本专利技术的Hook方法,基于Hook机制避免了基于轮询的缺点,具有用户友好,几乎不影响系统性能,安装简单,使用方便的特点。本专利技术的Hook方法不仅限于应用与本专利技术的应用锁,开发者可以根据自己的需求定制不同功能Hook模块,且不需要依靠其他框架,即可达到Hook的目的,提高了开发的效率。在首次启动Android系统应用锁时执行基于上述Android系统应用Hook方法实现的Hook模块,拦截应用启动流程,使得点击桌面图标的操作不启动应用,而是将启动应用变为执行应用锁的解锁模块,无需在其他平台上执行,在Android系统直接实现对应用的加解锁。附图说明图1为本专利技术具体实施方式的Android系统应用Hook方法流程图;图2为本专利技术具体实施方式的Android应用锁流程图。具体实施方式下面结合附图对本专利技术做进一步说明。一种Android系统应用Hook方法,如图1所示,包括:步骤1:根据功能需求为Android系统实现JavaHook类;本实施方式中,为实现拦截应用启动功能需求,通过阅读Android系统应用启动部分的源代码,找到其中能够被拦截的点,使用Java反射和代理原理,实现为JavaHook类,功能是拦截应用启动流程,将启动应用变为执行解锁操作。步骤2:将JavaHook类的Hook文件打包到Android应用的安装包中;所述JavaHook类的Hook文件是固定的两个文件,包括注入可执行文件和动态链接库文件,分别用作注入可执行文件和注入目标进程,动态链接库文件在目标进程中加载JavaHook类;这两个文件用于支持JavaHook类的正常运行,若缺少这两个Hook文件,JavaHook类将不能发挥效果。步骤3:从Android系统自动备份的安装包文件中提取出JavaHook类的两个Hook文件;本实施方式中使用Android系统命令(unzip),解压安装包文件,提取出JavaHook类的两个Hook文件并增加JavaHook类的两个Hook文件的可执行权限。步骤4:生成JavaHook类的两个Hook文件执行需要的参数,并通过文件的方式传递;本实施方式中使用Android系统命令(ps),获取Android系统桌面进程的进程号,调用Android系统API获取安装包的安装路径,并将这些作为执行需要的参数按照指定的格式写入Hook文件,传递执行时需要的参数。步骤5:执行所述注入可执行文件时,注入可执行文件根据传递的执行时需要的参数注入到目标进程中,在目标进程中加载动态链接库文件;动态链接库文件加载安装包文件,解析出JavaHook类并执行,完成对应用启动流程的Hook。使用本实施方式所提供的Hook方法,开发者只需要依照本Hook方法步骤中的规则编写少量代码,即可实现Hook。基于本Hook方法,软件开发者可以快速开发,实现不同Hook功能,降低开发成本,缩短开发周期。在下面介绍的Android系统应用锁中,使用此Hook方法实现了Hook模块,并且使用此Hook方法,使得Hook模块正常运行,在应用锁中实现其功能。基于上述Android系统应用Hook方法实现的Android系统应用锁,如图2所示,包括:Hook模块,基于上述Android系统应用Hook方法实现,在首次启动Android系统应用锁时执行,本文档来自技高网...
一种Android系统应用Hook方法及应用锁

【技术保护点】
一种Android系统应用Hook方法,其特征在于,包括:步骤1:根据功能需求为Android系统实现Java Hook类;步骤2:将Java Hook类和Hook文件打包到Android应用安装包中;步骤3:对应用启动流程Hook时从Android系统自动备份的安装包文件中提取出Hook文件;步骤4:生成Java Hook类的Hook文件执行需要的参数,并通过文件的方式传递;步骤5:执行注入可执行文件时,注入可执行文件根据传递的执行时需要的参数注入到目标进程中,在目标进程中加载动态链接库文件;动态链接库文件加载安装包文件,解析出Java Hook类并执行,完成对应用启动流程的Hook。

【技术特征摘要】
1.一种Android系统应用Hook方法,其特征在于,包括:步骤1:根据功能需求为Android系统实现JavaHook类;步骤2:将JavaHook类和Hook文件打包到Android应用安装包中;步骤3:对应用启动流程Hook时从Android系统自动备份的安装包文件中提取出Hook文件;步骤4:生成JavaHook类的Hook文件执行需要的参数,并通过文件的方式传递;步骤5:执行注入可执行文件时,注入可执行文件根据传递的执行时需要的参数注入到目标进程中,在目标进程中加载动态链接库文件;动态链接库文件加载安装包文件,解析出JavaHook类并执行,完成对应用启动流程的Hook。2.根据权利要求1所述的方法,其特征在于,所述步骤1,具体是通过阅读Android系统应用启动部分的源代码,找到其中能够被拦截的点,使用Java反射和代理原理,实现为JavaHook类,拦截应用启动流程,将启动应用变为执行解锁操作。3.根据权利要求1所述的方法,其特征在于,所述步骤2,所述Hook文件包括注入可执行文件和动态链接库文件,分别用作注入可执行文件和注入目标进程,动态链接库文件在目标进程中加载JavaHook类。4.根据权利要求1所述的方法,其特征在于,所述步骤3,使用Android系统命令unz...

【专利技术属性】
技术研发人员:周荆陈钟李青山关志李洪生冯向军吴琛王晓青
申请(专利权)人:北京国信云服科技有限公司北京大学
类型:发明
国别省市:北京,11

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

1