[发明专利]软件钩子设置方法及装置有效
| 申请号: | 201610167790.1 | 申请日: | 2016-03-23 | 
| 公开(公告)号: | CN105786524B | 公开(公告)日: | 2019-03-12 | 
| 发明(设计)人: | 李桥木;林凡;张劲攀;江万鑫 | 申请(专利权)人: | 福建正孚软件有限公司 | 
| 主分类号: | G06F9/448 | 分类号: | G06F9/448 | 
| 代理公司: | 福州市景弘专利代理事务所(普通合伙) 35219 | 代理人: | 林祥翔;徐剑兵 | 
| 地址: | 350001 福建省福州市鼓楼*** | 国省代码: | 福建;35 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 软件 钩子 设置 方法 装置 | ||
本发明公开软件钩子设置方法及装置,其中方法包括如下步骤:在目标API被触发时,创建钩子API2;替换API2的入口地址为原目标API入口地址;替换原目标API入口地址为钩子API1的入口地址;执行钩子API1;随着目标API的释放,钩子API1自动释放。本方案通过目标API的入口地址的替换,使得目标API被触发时,都能运行预置处理程序钩子API1,避免了在钩子还原过程中直接运行目标API的问题,即避免了在还原的时候出现缝隙的问题。
技术领域
本发明涉及软件技术领域,尤其涉及软件钩子设置方法及装置。
背景技术
钩子(Hook),技术是一种用于改变API(Application Programming Interface,应用程序编程接口)执行结果的技术,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为本发明装置一实施例的结构图。
附图标记说明:
200、软件钩子设置装置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建正孚软件有限公司,未经福建正孚软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610167790.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于Web Service的版本更新方法
 - 下一篇:数据同步系统及方法
 





