一种驱动层防注入方法、装置及客户端制造方法及图纸

技术编号:15501428 阅读:85 留言:0更新日期:2017-06-03 22:48
本发明专利技术提供一种驱动层防注入方法、装置及客户端。包括如下步骤:创建防异步过程调用动态链接库,所述动态链接库包含LdrLoadDLL的钩子函数和APC注入模块名单。建立与防异步过程调用动态链接库之间的静态链接。创建主线程,调用所述防异步过程调用动态链接库,加载LdrLoadDLL的钩子函数,获取经过编译的所述APC注入模块名单。根据所述LdrLoadDLL的钩子函数和APC注入模块名单判断是否存在APC注入模块;若存在,拦截所述APC注入模块。本发明专利技术能够在进程创建主线程时即对可能存在的APC进行识别和拦截,有效拦截驱动层APC注入,从而提升系统的安全性和稳定性。

Driving layer anti injection method, device and client

The invention provides a driving layer anti injection method, a device and a client. The following steps are included: creating an asynchronous process call, a dynamic link library, and the dynamic link library containing the hook function of the LdrLoadDLL and the list of APC injection modules. Establishes a static link between the library and the dynamic link library that prevents asynchronous process calls. Create the primary thread, call the asynchronous process, call the dynamic link library, load the hook function of LdrLoadDLL, and get the compiled list of the APC injection modules. The APC injection module is judged according to the LdrLoadDLL hook function and the list of APC injection modules; if there is, the APC injection module is intercepted. The invention can identify and intercept the possible APC when the main thread is created by the process, effectively block the APC injection of the driving layer, thereby improving the security and stability of the system.

【技术实现步骤摘要】
一种驱动层防注入方法、装置及客户端
本专利技术属于系统安全
,具体涉及一种驱动层防注入方法、装置及客户端。
技术介绍
异步过程调用(APC:asynchronousprocedurecall)是指函数在特定线程中被异步执行。在MicrosoftWindows操作系统中,APC是一种并发机制,用于异步IO或者定时器。客户端程序的稳定性和安全性是必不可少的参考指标。某些第三方模块会有漏洞(Bug)的存在,这些漏洞会通过APC的方式注入到其它客户端程序,从而带来客户端程序的不稳定,由此带来负面的用户体验和反馈。因此,如何减少第三方模块注入给软件所造成的影响便成了客户端软件稳定性中的一个不可或缺的环节。现有技术中,尚未发现在驱动层拦截第三方模块APC注入的技术。
技术实现思路
因此,本专利技术提出一种驱动层防注入方法、装置及客户端。所述驱动层防注入方法包括如下步骤:创建驱动层防注入动态链接库,所述驱动层防注入动态链接库包含第一钩子函数和驱动层注入模块名单;建立所述驱动层防注入动态链接库与应用程序之间的静态链接,以使得所述应用程序的主线程被建立时,所述驱动层防注入动态链接库被首先调用,所述第本文档来自技高网...
一种驱动层防注入方法、装置及客户端

【技术保护点】
一种驱动层防注入方法,其特征在于,所述方法包括如下步骤:创建驱动层防注入动态链接库,所述驱动层防注入动态链接库包含第一钩子函数和驱动层注入模块名单;建立所述驱动层防注入动态链接库与应用程序之间的静态链接,以使得所述应用程序的主线程被建立时,所述驱动层防注入动态链接库被首先调用,所述第一钩子函数和所述驱动层注入模块名单被加载;响应于所述应用程序的主线程对第三方模块的加载,判断所述被加载的第一钩子函数返回的第三方模块是否属于所述驱动层注入模块名单;若是,通过第一钩子函数拦截所述返回的第三方模块。

【技术特征摘要】
1.一种驱动层防注入方法,其特征在于,所述方法包括如下步骤:创建驱动层防注入动态链接库,所述驱动层防注入动态链接库包含第一钩子函数和驱动层注入模块名单;建立所述驱动层防注入动态链接库与应用程序之间的静态链接,以使得所述应用程序的主线程被建立时,所述驱动层防注入动态链接库被首先调用,所述第一钩子函数和所述驱动层注入模块名单被加载;响应于所述应用程序的主线程对第三方模块的加载,判断所述被加载的第一钩子函数返回的第三方模块是否属于所述驱动层注入模块名单;若是,通过第一钩子函数拦截所述返回的第三方模块。2.根据权利要求1所述的方法,其特征在于,所述驱动层注入模块名单通过如下步骤获得:注册驱动层映像加载回调函数;根据所述驱动层映像加载回调函数判断是否加载指定动态链接库;若是,则分析蓝屏源;分析蓝屏源,判断奔溃的栈是否为指定栈,若是,则判断所述动态链接库是通过驱动层注入的;将所述模块加入驱动层注入模块名单。3.根据权利要求1所述的方法,其特征在于,所述驱动层防注入动态链接库,仅依靠ntdll.dll、user32.dll和kernel32.dll建立。4.根据权利要求1所述的方法,其特征在于,判断所述被加载的第一钩子函数返回的模块是否属于所述驱动层注入模块名单步骤包括:建立循环函数;在所述循环函数的循环中逐一比较所述被加载的第一钩子函数返回的第三方模块与所述驱动层注入模块名单中的每一个注入模块。5.根据权利要求1所述的方法,其特征在于,所述通过第一钩子函数拦截所述返回的第三方模块包括:在所述第一钩子函数中将所述第一钩子函数返回的模块所引用的动态链接库句柄设置为空值。6.一种驱动层防注入装置,其特征在于,所述装置包括如下模块:驱动层防注入动态链接库创建模块,用于创建驱动层防注入动态链接库,所述驱动层防注入动态链接库包含第一钩子函数和驱动层注入模块名单;静态链接建立模块,用于建立应用程序与所述驱动层防注入动态链接库之间的静态链接,以使得当所述应用程序的主线程被建立时,所述驱动层防注入动态链接库被首先调用,所述第一钩子函数和所述驱动层注入模块名单被加载;判断模块,用于响应所述应用程序的主线程对第三方模块的加载,判断所述被加载的第一钩子函数返回的第三方模块是否属于所述...

【专利技术属性】
技术研发人员:杨传辉陈铭霖
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1