[发明专利]基于跳转指令的hook方法、装置、设备及存储介质有效
| 申请号: | 202011542231.7 | 申请日: | 2020-12-23 |
| 公开(公告)号: | CN112559920B | 公开(公告)日: | 2022-11-04 |
| 发明(设计)人: | 罗曼 | 申请(专利权)人: | 苏州三六零智能安全科技有限公司 |
| 主分类号: | G06F16/955 | 分类号: | G06F16/955 |
| 代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 薛福玲 |
| 地址: | 215000 江苏省苏州市苏州工业*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 跳转 指令 hook 方法 装置 设备 存储 介质 | ||
本发明涉及计算机技术领域,公开了一种基于跳转指令的hook方法、装置、设备及存储介质,包括:在程序执行到目标函数入口时,确定所述目标函数入口对应的近跳转指令;根据所述近跳转指令跳转至目标内存空间地址;获取所述目标内存空间地址中存储的远跳转指令;根据所述远跳转指令跳转至目标代码对应的空间地址。在本发明中,通过近跳转指令跳转到目标内存空间地址,然后根据目标内存空间地址中存储的远跳转指令跳转至目标代码对应的空间地址,通过两次跳转的方式来实现hook过程中的远跳转,减少了对函数的修改,从而降低了函数修复难度,并且提高了hook的成功率。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于跳转指令的hook方法、装置、设备及存储介质。
背景技术
目前,在hook的过程中,由于不同跳转指令的跳转范围不一样,因此,如果需要hook的对象离函数入口的距离较远的话,需要使用到远跳转指令来进行hook,但是,由于远跳转通常需要多条指令实现,对函数的修改较大,修复难度大且容易hook失败。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提出一种基于跳转指令的hook方法、装置、设备及存储介质,旨在解决现有技术中远跳转需要多条指令实现,对函数的修改较大,函数修复难度大且容易hook失败的技术问题。
为实现上述目的,本发明提供一种基于跳转指令的hook方法,所述基于跳转指令的hook方法包括以下步骤:
在程序执行到目标函数入口时,确定所述目标函数入口对应的近跳转指令;
根据所述近跳转指令跳转至目标内存空间地址;
获取所述目标内存空间地址中存储的远跳转指令;
根据所述远跳转指令跳转至目标代码对应的空间地址。
可选地,所述在程序执行到目标函数入口时,确定所述目标函数入口对应的近跳转指令之前,还包括:
对待选函数入口的第一条指令进行修改,获得待选近跳转指令;
根据所述待选函数入口和所述待选近跳转指令建立第一映射列表;
相应地,所述在程序执行到目标函数入口时,查找所述目标函数入口对应的近跳转指令,包括:
在程序执行到目标函数入口时,根据所述第一映射列表查找所述目标函数入口对应的近跳转指令。
可选地,所述根据所述第一映射列表查找所述目标函数入口对应的近跳转指令,包括:
将所述目标函数入口与所述第一映射列表中的待选函数入口进行匹配;
根据匹配结果确定与所述目标函数入口对应的近跳转指令。
可选地,所述根据所述近跳转指令跳转至目标内存空间地址之前,还包括:
为所述待选近跳转指令分配对应的待选内存空间地址,其中所述待选内存空间地址中存储有待选远跳转指令;
根据所述待选近跳转指令和所述待选内存空间地址建立第二映射列表;
相应地,所述根据所述近跳转指令跳转至目标内存空间地址之前,还包括:
根据所述第二映射列表查找所述近跳转指令对应的目标内存空间地址。
可选地,所述根据所述第二映射列表查找所述近跳转指令对应的目标内存空间地址,包括:
将所述近跳转指令与所述第二映射列表中的待选近跳转指令进行匹配;
根据匹配结果确定所述近跳转指令对应的目标内存空间地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州三六零智能安全科技有限公司,未经苏州三六零智能安全科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011542231.7/2.html,转载请声明来源钻瓜专利网。





