[发明专利]基于xposed框架对native层函数进行hook的方法、装置及电子装置有效
申请号: | 201811646111.4 | 申请日: | 2018-12-29 |
公开(公告)号: | CN109814948B | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 张振国;罗斌;熊超超 | 申请(专利权)人: | 奇安信安全技术(珠海)有限公司;奇安信科技集团股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京中强智尚知识产权代理有限公司 11448 | 代理人: | 黄耀威 |
地址: | 519085 广东省珠海市高新区唐家*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 xposed 框架 native 函数 进行 hook 方法 装置 电子 | ||
本发明提供了一种基于xposed框架对native层函数进行hook的方法、装置及电子装置,其中,该方法包括:基于xposed框架对native层函数进行hook的方法,包括:利用xposed框架的目标接口捕获应用被加载的时机;在应用被加载时,利用应用的类加载器反射查找用于加载so库的目标函数;利用目标函数加载用于hook目标native层函数的目标so库。通过本发明,解决了现有技术中xposed框架无法在native层hook的技术问题,并且改善了安卓系统中针对native层的hook技术兼容性和稳定性不足的问题。
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于xposed框架对native层函数进行hook的方法、装置及电子装置。
背景技术
现有技术中,安卓的hook技术有Plt-Got替换hook技术、Xposed框架hook技术和substrate等native层内联hook框架。其中,Plt-Got替换hook技术由于对应用内存直接操作,只适用于hook应用自身native层函数,并不适用对全局(安卓系统中全部应用)的hook;Xposed框架仅在Java层hook,缺少native层hook的相关功能;而substrate等native层内联hook框架则兼容性、稳定性不高。相比较pc端的hook技术,安卓的hook技术还不够成熟,难以兼顾控制范围、稳定性和兼容性。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种基于xposed框架对native层函数进行hook的方法、装置及电子装置,以至少解决现有技术中xposed框架无法在native层hook的技术问题。
根据本发明的一个实施例,提供了一种基于xposed框架对native层函数进行hook的方法,包括:利用xposed框架的目标接口捕获应用被加载的时机;在应用被加载时,利用应用的类加载器反射查找用于加载so库的目标函数;利用目标函数加载用于hook目标native层函数的目标so库。
进一步地,应用的信息包括应用的apk包名,根据应用的信息判断应用是否为目标应用,包括:利用应用的apk包名与目标应用的包名进行匹配,以判断应用是否为目标应用。
进一步地,在利用应用的类加载器反射查找用于加载so库的目标函数之前,该方法还包括:利用目标接口获取被加载的应用的信息;根据应用的信息判断应用是否为目标应用,其中,在目标应用被加载时,利用目标应用的类加载器反射查找java.lang.system.load函数。
进一步地,目标so库在被加载之后,通过操作应用的内存,将got表中目标native层函数的地址替换为hook函数的地址。
根据本发明的另一个实施例,提供了一种基于xposed框架对native层函数进行hook的装置,包括:捕获模块,用于利用xposed框架的目标接口捕获应用被加载的时机;查找模块,用于在应用被加载时,利用应用的类加载器反射查找用于加载so库的目标函数;加载模块,用于利用目标函数加载用于hook目标native层函数的目标so库。
进一步地,该装置还包括:替换模块,用于目标so库在被加载之后,通过操作应用的内存,将got表中目标native层函数的地址替换为hook函数的地址。
进一步地,该装置还包括:获取模块,用于在利用所述应用的类加载器反射查找用于加载so库的目标函数之前,利用所述目标接口获取被加载的所述应用的信息;判断模块,用于根据所述应用的信息判断所述应用是否为目标应用,其中,在所述目标应用被加载时,利用所述目标应用的类加载器反射查找java.lang.system.load函数。
进一步地,应用的信息包括应用的apk包名,判断模块包括:匹配单元,用于利用应用的apk包名与目标应用的包名进行匹配,以判断应用是否为目标应用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信安全技术(珠海)有限公司;奇安信科技集团股份有限公司,未经奇安信安全技术(珠海)有限公司;奇安信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811646111.4/2.html,转载请声明来源钻瓜专利网。