[发明专利]一种实现hook的方法及装置有效
申请号: | 201710142855.1 | 申请日: | 2017-03-10 |
公开(公告)号: | CN108573142B | 公开(公告)日: | 2020-06-09 |
发明(设计)人: | 曾英佩 | 申请(专利权)人: | 中移(杭州)信息技术有限公司;中国移动通信集团公司 |
主分类号: | G06F21/50 | 分类号: | G06F21/50 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 311100 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 hook 方法 装置 | ||
1.一种实现hook的方法,其特征在于,该方法包括:
确定需要生成的hook函数的返回值类型;
针对每一种返回值类型,生成参数类型为可变参数且具有该返回值类型的hook函数;
基于各个返回值类型对应的hook函数,生成so库;并
针对每一个需要进行hook的安卓安装包APK,提取该APK中每一个需要被hook的Java函数的返回值类型并保存在该APK中,以便终端在运行该APK时,从所述so库中选择一个与该需要被hook的Java函数的返回值类型相同且未被使用的hook函数,并将选择的hook函数与该需要被hook的Java函数之间建立链接关系。
2.如权利要求1所述的方法,其特征在于,所述确定需要生成的hook函数的返回值类型,包括:
确定Java函数的返回值类型的种类;
确定需要生成的hook函数的返回值类型种类为与确定出的Java函数的返回值类型的种类相同。
3.如权利要求1所述的方法,其特征在于,针对每一种返回值类型,生成参数类型为可变参数且具有该返回值类型的hook函数,包括:
针对每一种返回值类型,根据预先配置的hook函数的所需总个数以及该返回值类型的hook函数所占比例,生成具有该返回值类型且参数类型为可变参数的hook函数;并,
为生成的每一个hook函数分配一个唯一标识,用于标记该hook函数。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对每一个需要被hook的Java函数,将所述APK的可执行文件中与该Java函数对应的方法设置为本地方法;
将所述生成的so库保存在该APK中,并在所述可执行文件中添加用于加载so库的指令。
5.一种实现hook的方法,其特征在于,该方法包括:
终端设备根据需要进行hook的安卓安装包APK中包含的用于加载so库的指令,加载so库,其中,所述so库中包含有不同返回值类型且参数类型均为可变参数的hook函数;
针对所述APK中每一个需要被hook的Java函数,执行以下操作:
从所述so库中选择一个与该Java函数的返回值类型相同且未被使用的hook函数;
将选择出的hook函数与该需要被hook的Java函数之间建立链接关系。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
根据选择出的hook函数的唯一标识,确定该唯一标识与所述需要被hook的Java函数之间的映射关系,并存储所述映射关系;
当执行所述选择出的hook函数时,基于存储的所述映射关系以及所述选择出的hook函数的唯一标识,确定与该选择出的hook函数对应的原Java函数。
7.一种实现hook的装置,其特征在于,该装置包括:
确定模块,用于确定需要生成的hook函数的返回值类型;
第一生成模块,用于针对每一种返回值类型,生成参数类型为可变参数且具有该返回值类型的hook函数;
第二生成模块,用于基于各个返回值类型对应的hook函数,生成so库;
提取模块,用于针对每一个需要进行hook的安卓安装包APK,提取该APK中每一个需要被hook的Java函数的返回值类型并保存在该APK中,以便终端在运行该APK时,从所述so库中选择一个与该需要被hook的Java函数的返回值类型相同且未被使用的hook函数,并将选择的hook函数与该需要被hook的Java函数之间建立链接关系。
8.如权利要求7所述的装置,其特征在于,所述确定模块具体用于:
确定Java函数的返回值类型的种类;
确定需要生成的hook函数的返回值类型种类为与确定出的Java函数的返回值类型的种类相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中移(杭州)信息技术有限公司;中国移动通信集团公司,未经中移(杭州)信息技术有限公司;中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710142855.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:信息访问方法及装置
- 下一篇:基于程序插桩和动态信息验证的栈保护方法