[发明专利]在目标函数中挂钩新函数的装置、方法以及电子设备有效
申请号: | 201410136808.2 | 申请日: | 2014-04-04 |
公开(公告)号: | CN103885750B | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 黄鑫;吴鲁加 | 申请(专利权)人: | 深圳市大成天下信息技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/48 |
代理公司: | 北京思睿峰知识产权代理有限公司11396 | 代理人: | 谢建云,赵爱军 |
地址: | 518057 广东省深圳市南山区粤兴三道8号中*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 目标 函数 挂钩 装置 方法 以及 电子设备 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种在目标函数中挂钩新函数的装置、方法以及电子设备。
背景技术
挂钩(Hook)是Windows中提供的一种用以替换DOS下“中断”的系统机制。在对特定的系统事件进行挂钩后,一旦发生已挂钩事件,对该事件进行挂钩的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。
例如,在现有技术中,64位操作系统下挂钩的方法通常如下:(1),找到需要挂钩的函数地址;(2),解析从函数起始地址开始,最少6+8=14个字节的代码,代码不能断开;(3),把第14或者15,16...个字节的代码拷贝到预先分配的跳板(trampoline)中;(4),把前6个字节改为ff15[0],也即ff1500000000;(5),在随后的8个字节中保存新函数(new_function)的起始地址;(6),修正跳板中的14字节的代码,如果里面有jmp,call等跳转语句,修改偏移量,这时候通常又需要跨4G的跳转,那么按照上面的方法修改,跳板的字节数可能会增加;(7),在跳板的代码之后,插入ff15[0],并且在随后的8个字节中填充old_function+14。跳板可以预先分配一个100字节的缓冲区(buffer),初始化全部填充为空指令(nop),在进行(7)的时候,可以从跳板的底部,也即100-14的位置开始填入ff,15,00,00,00,00,64_bit_target_function+14(15,16...)。由于跳板最少要复制目标函数14个字节的代码,所以现有技术中的上述方法无法对函数体小于14字节的函数进行挂钩。
这样,由于64位操作系统最少需要复制目标函数14个字节的代码,而32位操作系统则最少需要复制目标函数5个字节的代码,使得32位和64位操作系统必须需要两套程序才能满足需求,从而导致现有技术的这种方式效率较低且兼容性不好。
因此,由于以上举例所描述的32位和64位操作系统需要两套程序以及现有技术中存在的其他限制/原因,导致了目前存在的挂钩技术往往效率较低和/或兼容性较差。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
鉴于此,本发明提供了在目标函数中挂钩新函数的装置、方法以及电子设备,以至少解决现有的挂钩技术效率较低和/或兼容性较差的问题。
根据本发明的一个方面,提供了一种在目标函数中挂钩新函数的装置,该装置包括:跳板函数创建单元,其被配置用于创建跳板函数,使得跳板函数的前N个字节内容为目标函数的前N个字节内容,并在跳板函数的前N个字节之后续之以跳转到目标函数的第一跳转指令以及跳转到新函数的第二跳转指令,其中,跳板函数在目标函数的预定范围之内;目标函数处理单元,其被配置用于将目标函数的前N个字节内容替换为跳转到跳板函数的第三跳转指令;以及新函数处理单元,其被配置用于在新函数的末尾添加跳转到跳板函数的第四跳转指令。第三跳转指令指示跳转到跳板函数中执行第二跳转指令的位置处。
根据本发明的另一个方面,还提供了一种在目标函数中挂钩新函数的方法,该方法包括:创建跳板函数,跳板函数在目标函数的预定范围之内,在跳板函数中,前N个字节内容为目标函数的前N个字节内容,并续之以跳转到目标函数的第一跳转指令以及跳转到新函数的第二跳转指令;将目标函数的前N个字节内容替换为跳转到跳板函数的第三跳转指令;以及在新函数的末尾添加跳转到跳板函数的第四跳转指令。第三跳转指令指示跳转到跳板函数中执行第二跳转指令的位置处。
根据本发明的另一个方面,还提供了一种电子设备,该电子设备包括如上所述的在目标函数中挂钩新函数的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市大成天下信息技术有限公司,未经深圳市大成天下信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410136808.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种有线音乐播放设备的无线播放改造结构
- 下一篇:一种拼接式制冷广告牌