[发明专利]软件钩子设置方法及装置在审
| 申请号: | 201711371113.2 | 申请日: | 2017-12-19 |
| 公开(公告)号: | CN109933387A | 公开(公告)日: | 2019-06-25 |
| 发明(设计)人: | 杨怡 | 申请(专利权)人: | 镇江飞协软件开发有限公司 |
| 主分类号: | G06F9/448 | 分类号: | G06F9/448 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 212000 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 钩子 入口地址 替换 触发 处理程序 还原过程 自动释放 预置 还原 释放 创建 | ||
本发明公开软件钩子设置方法及装置,其中方法包括如下步骤:在目标API被触发时,创建钩子API2;替换API2的入口地址为原目标API入口地址;替换原目标API入口地址为钩子API1的入口地址;执行钩子API1;随着目标API的释放,钩子API1自动释放。本方案通过目标API的入口地址的替换,使得目标API被触发时,都能运行预置处理程序钩子API1,避免了在钩子还原过程中直接运行目标API的问题,即避免了在还原的时候出现缝隙的问题。
技术领域
本发明涉及软件技术领域,尤其涉及软件钩子设置方法及装置。
背景技术
钩子(Hook),技术是一种用于改变API(ApplicationProgrammingInterface,应用程序编程接口)执行结果的技术,Microsoft自身也在Windows操作系统里面使用了这个技术。其原理为:用自行构建的API入口地址替换目标API的入口地址,以达到应用程序在执行系统API功能前,预先处理自行构建的处理事件,然后还原系统API的入口地址,以实现返回用户真正调用API的功能。
现有的API运行原流程如下:应用程序触发——调用原API执行既定功能。而普通钩子流程如下:应用程序触发——调用原API但入口地址是API1的,即调用API1入口地址执行预置的程序,——预置程序执行后——还原原API的入口地址,调用原API既定功能。
现有的在钩子API进行处理的过程中,会在新的API和原API入口地址之间不断交替的过程,这会产生无数的时间缝隙。可能发生被钩子挂钩的程序直接执行而绕过钩子API1的问题,即在钩子API1的挂钩过程中,会出现一个缝隙,造成无法勾住该目标API的问题。
发明内容
为此,需要提供软件钩子设置方法及装置,解决现有钩子处理过程中存在缝隙的问题。
为实现上述目的,发明人提供了软件钩子设置方法,包括如下步骤:
在目标API被触发时,创建钩子API2;
替换API2的入口地址为原目标API入口地址;
替换原目标API入口地址为钩子API1的入口地址;
执行钩子API1;
随着目标API的释放,钩子API1自动释放。
进一步地,所述钩子API1为预置钩子程序,钩子API2为空白程序。
以及本发明还提供无缝钩子设置装置,包括如下模块:
临时钩子创建模块:在目标API被触发时,创建钩子API2;
第一地址替换模块:替换API2的入口地址为原目标API入口地址;
第二地址替换模块:替换原目标API入口地址为钩子API1的入口地址;
钩子API1执行模块:执行钩子API1;
被钩地址还原模块:随着目标API的释放,钩子API1自动释放。
进一步地,所述钩子API1为预置钩子程序,钩子API2为空白程序。
区别于现有技术,上述技术方案通过目标API的入口地址的替换,使得目标API被触发时,都能运行预置处理程序钩子API1,避免了在钩子还原过程中直接运行目标API的问题,即避免了在还原的时候出现缝隙的问题。
附图说明
图1为本发明方法一实施例的流程图;
图2为本发明装置一实施例的结构图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于镇江飞协软件开发有限公司,未经镇江飞协软件开发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711371113.2/2.html,转载请声明来源钻瓜专利网。





