[发明专利]防注入的方法和装置有效
| 申请号: | 201510382748.7 | 申请日: | 2015-07-02 |
| 公开(公告)号: | CN106326735B | 公开(公告)日: | 2020-04-03 |
| 发明(设计)人: | 陈铭霖;胡训国;黄磊 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F21/55 | 分类号: | G06F21/55 |
| 代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;邓云鹏 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 注入 方法 装置 | ||
本发明涉及一种防注入的方法和装置。所述方法包括以下步骤:获取应用程序编程接口的调用指令;根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;加载获取的动态链接库信息到当前进程。上述防注入的方法和装置,调用应用程序编程接口时,通过Hook函数读取注册表信息,并按照预设策略获取动态链接库信息,加载动态链接库信息到当前进程中,通过预设策略筛选了动态链接库,而不是直接由应用程序编程接口读取注册表信息获取动态链接库进行加载,不需人工识别,能防止出错,且能加载应用程序编程接口,因筛选过动态链接库,调用应用程序编程接口安全性高。
技术领域
本发明涉及信息安全领域,特别是涉及一种防注入的方法和装置。
背景技术
注入是指以某种方式或通过系统机制把可执行模块强行加载到进程中。常见的注入发生在API(Applicant Programming Interface,应用程序编程接口)的内部,当代码中调用某个系统API时(如SHELL32.dll的特定API),API内部会主动读取注册表特定的位置,检查是否有第三方的DLL(Dynamic Link Library,动态链接库)注册信息,如果存在第三方的DLL信息,API会把这些第三方DLL加载到当前进程中,这个就是一次注入过程。
为了防止注入,传统的方式是避免调用有注入行为的API。然而,采用避免调用的方式,需要清晰知道哪类API内部具有注入行为,对软件开发者要求过高,且出错机会较大;一些核心功能的API,实现功能比较复杂,并且没有替代的API,如果调用这些API则会被注入,容易被攻击者通过注入的DLL进行攻击,安全性低,若不调用这些API,则需要自己实现其相应的功能,代价非常大。
发明内容
基于此,有必要针对传统的避免调用方式防止注入,出错几率大且安全性低的问题,提供一种防注入的方法,能防止出错且安全性高。
此外,还有必要提供一种防注入的装置,能防止出错且安全性高。
一种防注入的方法,包括以下步骤:
获取应用程序编程接口的调用指令;
根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;
通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;
加载获取的动态链接库信息到当前进程。
一种防注入的装置,包括:
调用模块,用于获取应用程序编程接口的调用指令;
进入模块,用于根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;
获取模块,用于通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;
加载模块,用于加载获取的动态链接库信息到当前进程。
上述防注入的方法和装置,调用应用程序编程接口时,通过Hook函数读取注册表信息,并按照预设策略获取动态链接库信息,加载动态链接库信息到当前进程中,通过预设策略筛选了动态链接库,而不是直接由应用程序编程接口读取注册表信息获取动态链接库进行加载,不需人工识别,能防止出错,且能加载应用程序编程接口,因筛选过动态链接库,调用应用程序编程接口安全性高。
附图说明
图1A为一个实施例中终端的内部结构示意图;
图1B为一个实施例中服务器的内部结构示意图;
图2为一个实施例中防注入的方法的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510382748.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种动画编辑器及其编辑方法
- 下一篇:一种丹酚酸化合物V、其制备方法和用途





