[发明专利]一种消息钩子防注入方法、装置以及客户端有效
申请号: | 201610936075.X | 申请日: | 2016-11-01 |
公开(公告)号: | CN106709331B | 公开(公告)日: | 2020-09-25 |
发明(设计)人: | 杨传辉 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F8/30 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 钩子 注入 方法 装置 以及 客户端 | ||
1.一种消息钩子防注入方法,其特征在于,所述方法包括如下步骤:
加载用户回调分配函数的钩子函数,所述用户回调分配函数用于获取系统应用层程序所对应的系统内核回调表;
根据系统版本确定预定数值:获取不同系统版本的用户加载库函数的内核回调索引,并形成预存列表;获取当前系统的系统版本;在所述预存列表中查询当前系统的系统版本所对应的用户加载库函数的内核回调索引;将查询到的内核回调索引配置为所述预定数值;
判断所述钩子函数获取的第一参数是否等于所述预定数值,所述第一参数为用户回调分配函数返回的内核回调索引;
若否,调用原有的用户回调分配函数;
若是,判断所述钩子函数返回的第二参数偏移处所对应加载的动态链接库是否属于系统白名单;
若属于系统白名单,调用原有的用户回调分配函数;
若不属于系统白名单,返回系统内核。
2.根据权利要求1所述的方法,其特征在于,所述根据系统版本确定预定数值,还包括:
获取当前系统的内核回调表;
在所述内核回调表中查找当前系统的系统版本所对应的用户加载库函数;
获取当前系统的系统版本所对应的用户加载库函数的内核回调索引;
将获取到的内核回调索引配置为所述预定数值。
3.根据权利要求1所述的方法,其特征在于,所述返回系统内核,包括:
将所述用户回调分配函数中反映返回状态的函数的值设置为零,以调用NtCallbackReturn函数;
利用所述NtCallbackReturn函数返回系统内核。
4.根据权利要求1所述的方法,其特征在于,所述调用原有的用户回调分配函数步骤包括:
退出所述钩子函数;
反初始化用户回调分配函数;
重新加载用户回调分配函数。
5.根据权利要求1所述的方法,其特征在于,所述第二参数的偏移处指向需要加载的动态链接库路径。
6.根据权利要求1所述的方法,其特征在于,所述返回系统内核包括跳过对第二参数偏移处所对应加载的动态链接库进行加载,直接返回系统内核。
7.一种消息钩子防注入装置,其特征在于,所述装置包括如下模块:
钩子函数加载模块,用于获取用户回调分配函数的钩子函数,所述用户回调分配函数用于获取系统应用层程序所对应的系统内核回调表;
预定数值确定模块,用于根据系统版本确定预定数值:获取不同系统版本的用户加载库函数的内核回调索引,并形成预存列表;获取当前系统的系统版本;在所述预存列表中查询当前系统的系统版本所对应的用户加载库函数的内核回调索引;将查询到的内核回调索引配置为所述预定数值;
第一判断模块,用于判断所述钩子函数获取的第一参数是否为预定数值,所述第一参数为用户回调分配函数返回的内核回调索引;
第二判断模块,用于在所述第一参数等于预定数值时,判断所述钩子函数返回的第二参数偏移处所对应加载的动态链接库是否属于系统白名单;
调用模块,用于在所述第一参数不等于预定数值时调用原有的用户回调函数;以及在所述第二参数偏移处所对应加载的动态链接库属于系统白名单时调用原有的用户回调函数;
返回模块,用于在所述第二参数偏移处所对应加载的动态链接库不属于系统白名单时,返回系统内核。
8.根据权利要求7所述的装置,其特征在于,所述预定数值确定模块,还包括:
第一获取单元:用于获取当前系统的内核回调表;
查找单元:用于在所述内核回调表中查找当前系统的系统版本所对应的用户加载库函数;
第二获取单元:用于获取当前系统的系统版本所对应的用户加载库函数的内核回调索引;
配置单元:用于将获取到的内核回调索引配置为所述预定数值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610936075.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:推导帧内预测模式的方法和设备
- 下一篇:一种监控程序的方法及装置