CN105844146B - 一种保护驱动程序的方法、装置及电子设备 - Google Patents

一种保护驱动程序的方法、装置及电子设备 Download PDF

Info

Publication number
CN105844146B
CN105844146B CN201610149567.4A CN201610149567A CN105844146B CN 105844146 B CN105844146 B CN 105844146B CN 201610149567 A CN201610149567 A CN 201610149567A CN 105844146 B CN105844146 B CN 105844146B
Authority
CN
China
Prior art keywords
driver
function
loading function
file path
layer process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610149567.4A
Other languages
English (en)
Other versions
CN105844146A (zh
Inventor
杨峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201610149567.4A priority Critical patent/CN105844146B/zh
Publication of CN105844146A publication Critical patent/CN105844146A/zh
Application granted granted Critical
Publication of CN105844146B publication Critical patent/CN105844146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的实施例公开一种保护驱动程序的方法、装置及电子设备。方法包括:在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。应用本发明,可以提升操作系统的安全防护效率。

Description

一种保护驱动程序的方法、装置及电子设备
技术领域
本发明涉及计算机网络通信安全技术,尤其涉及一种保护驱动程序的方法、装置及电子设备。
背景技术
随着Windows操作系统内核层技术细节的逐渐公开,越来越多的木马病毒等恶意应用程序开始使用内核层驱动程序来保护自身的进程,受内核层驱动程序保护的恶意应用程序的进程,可以结束(杀死)Windows操作系统中的其它进程,从而使得恶意应用程序的进程可以根据恶意应用程序提供者的意图,对用户的进程或系统进程进行恶意攻击,可能造成计算机运行不稳定,甚至可能给用户带来非常大的经济损失,例如,加载恶意应用程序对应的驱动程序,使得恶意应用程序可对操作系统进行攻击。其中,驱动程序一般指的是设备驱动(Device Driver)应用程序,是一种可以使计算机和设备通信的特殊应用程序,相当于硬件的接口,操作系统通过该接口控制硬件设备的工作,如果设备的驱动程序未能正确安装,该设备便不能正常工作。进程(Process)是计算机中的应用程序关于数据集合上的一次运行活动,是Windows操作系统进行资源分配和调度的基本单位,是Windows操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是应用程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。也就是说,应用程序是指令、数据及其组织形式的描述,进程是应用程序的实体。
目前,加载驱动程序的方法是调用操作系统提供的内核NtLoadDriver函数,因而,恶意应用程序可以通过调用内核NtLoadDriver函数完成恶意驱动程序的加载,从而使得恶意应用程序可以运行并攻击操作系统。为了保护Windows操作系统不被非法攻击的方法是利用钩子(HOOK)技术,通过对加载驱动程序的内核NtLoadDriver函数进行钩子处理,即Hook加载驱动程序的内核NtLoadDriver函数,分析该内核NtLoadDriver函数中的预定参数,该参数用于配置待加载驱动程序的服务注册表信息,通过解析配置的服务注册表信息,可以获得文件路径信息,从而依据文件路径信息得到待加载驱动程序,判断得到的待加载驱动程序是否是需要拦截的驱动程序,如果是,则返回拒绝,从而拦截该待加载驱动程序的加载。
但该保护驱动程序的方法,是通过Hook内核NtLoadDriver函数拦截成恶意驱动程序的加载,但在Windows操作系统中,通过统计分析,还存在另一隐蔽的加载驱动程序的方法,使得恶意应用程序可以通过该隐蔽的加载驱动程序的方法,实现恶意驱动程序的加载,从而对Windows操作系统进行攻击,导致Windows操作系统的安全防护效率较低,安全性不高。
发明内容
有鉴于此,本发明实施例提供一种保护驱动程序的方法、装置及电子设备,提升操作系统的安全防护效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种保护驱动程序的方法,包括:
在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;
提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;
如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。
可选的,所述驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合。
可选的,所述驱动程序加载函数为内核驱动加载函数,所述提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:
获取调用所述驱动程序加载函数时的内存地址;
解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;
利用所述进程句柄的内核对象获取文件路径信息。
可选的,所述驱动程序加载函数为内核系统信息设置函数,所述提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:
解析所述内核系统信息设置函数,获取第一参数以及第二参数;
如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息。
可选的,所述内核系统信息设置函数为内核NtSetSystemInformation函数,所述预先设置的索引值为38。
可选的,所述方法还包括:
如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。
可选的,所述驱动程序特征库由用户在本地进行设置,所述方法还包括:
将拒绝的驱动程序信息上报至预先设置的网络服务器。
第二方面,本发明实施例提供一种保护驱动程序的装置,包括:钩子模块、驱动程序提取模块以及操作处理模块,其中,
钩子模块,用于在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;
驱动程序提取模块,用于提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;
操作处理模块,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。
可选的,所述驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合。
可选的,所述驱动程序加载函数为内核驱动加载函数,所述驱动程序提取模块包括:内存地址获取单元、进程句柄获取单元、文件路径信息获取单元以及驱动程序获取单元,其中,
内存地址获取单元,用于获取调用所述驱动程序加载函数时的内存地址;
进程句柄获取单元,用于解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;
文件路径信息获取单元,用户利用所述进程句柄的内核对象获取文件路径信息;
驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。
可选的,所述驱动程序加载函数为内核系统信息设置函数,所述驱动程序提取模块包括:参数解析单元、文件路径信息提取单元以及驱动程序获取单元,其中,
参数解析单元,用于解析所述内核系统信息设置函数,获取第一参数以及第二参数;
文件路径信息提取单元,如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息;
驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。
可选的,所述内核系统信息设置函数为内核NtSetSystemInformation函数,所述预先设置的索引值为38。
可选的,所述操作处理模块还用于如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。
可选的,所述驱动程序特征库由用户在本地进行设置,所述装置还包括:
信息上报模块,用于将拒绝的驱动程序信息上报至预先设置的网络服务器。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的保护驱动程序的方法。
本发明实施例提供的保护驱动程序的方法、装置及电子设备,在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。这样,通过Hook驱动程序加载函数,当应用程序调用驱动程序加载函数以加载对应的驱动程序时,能够及时拦截应用程序的加载行为,提升了操作系统的安全防护效率,增强了操作系统的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例保护驱动程序的方法流程示意图;
图2为本发明实施例提取调用所述驱动程序加载函数的应用层进程的文件路径信息的流程示意图;
图3为本发明实施例保护驱动程序的装置结构示意图;
图4为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例保护驱动程序的方法流程示意图。参见图1,该方法包括:
步骤11,在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;
本步骤中,作为一可选实施例,驱动程序加载函数包括但不限于:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合。其中,内核驱动加载函数可以是内核NtLoadDriver函数,内核系统信息设置函数可以是内核NtSetSystemInformation函数,扇区创建函数可以是内核NtCreateSection函数,扇区映射函数可以是内核NtMapViewOfSection函数。
本发明实施例中,作为一可选实施例,调用内核NtSetSystemInformation函数是一种隐蔽的加载驱动程序的方法。操作系统提供的内核NtSetSystemInformation函数用于设置操作系统的一些信息,至少包含两个参数,分别用于设置时间信息、处理器信息、进程信息、内存信息等信息。其中,第一参数用于设置操作系统信息的类型索引号,例如,设置时间信息对应的类型索引号为28,设置进程信息对应的类型索引号为5,设置操作系统扩展服务注册表信息对应的类型索引号为38(将SYSTEM-INFORMATION-CLASS的值设置为SystemLoadAndCallImage)等;第二参数用于设置类型索引号的具体数据,例如,如果类型索引号为28,则设置具体的时间信息,如果类型索引号为38,则设置待加载驱动程序的文件路径信息。
本发明实施例中,注入的钩子(Hook)函数用于监听应用层进程的函数调用相关操作,并在应用层进程调用的相关函数与预先设置的函数相匹配时,拦截该调用的函数,转由注入的钩子函数替换该调用函数进行处理,并返回相应处理结果。
作为一可选实施例,钩子函数可在金山毒霸防御驱动程序加载时注入,其中,
Hook函数是Windows操作系统中消息处理机制的一段程序代码段,驱动程序可以通过该程序代码段,设置子程序代码段以监视指定窗口的某种消息(操作),而且所监视的指定窗口可以是其他进程所创建的。Hook函数具有的钩子机制通过Windows操作系统调用,将具有优先控制权的Hook函数挂入Windows操作系统,允许Hook函数截获Windows操作系统发出的消息或特定事件,每当Windows操作系统中消息或特定事件发出,在没有到达目的窗口前,Hook函数能够先捕获该消息或特定事件,从而可以加工处理(改变)该消息或特定事件,也可以不作处理而继续传递,还可以强制结束消息或特定事件的传递。
本发明实施例中,通过Hook驱动程序加载函数,在应用层进程,例如,应用程序通过向操作系统发送驱动程序加载请求,所述操作系统依据接收的驱动程序加载请求为所述应用程序创建相应的应用层进程,该应用层进程调用驱动程序加载函数以加载驱动程序时,就会先调用本发明实施例的Hook函数,从而依据预先设置在Hook函数中的拦截规则进行相应处理。
本发明实施例中,作为一可选实施例,所述应用层进程为一应用程序向操作系统发送驱动程序加载请求时,所述操作系统为该应用程序创建的进程。
作为一可选实施例,应用层进程调用预先设置的驱动程序加载函数包括:
应用层进程调用内核NtLoadDriver函数。
作为另一可选实施例,应用层进程调用预先设置的驱动程序加载函数包括:
应用层进程调用内核NtSetSystemInformation函数。
作为再一可选实施例,应用层进程调用预先设置的驱动程序加载函数包括:
应用层进程调用内核NtCreateSection函数。
作为再一可选实施例,应用层进程调用预先设置的驱动程序加载函数包括:
应用层进程调用内核NtMapViewOfSection函数。
步骤12,提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;
本步骤中,作为一可选实施例,如果驱动程序加载函数为内核驱动加载函数,提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:
A1,获取调用所述驱动程序加载函数时的内存地址;
A2,解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;
A3,利用所述进程句柄的内核对象获取文件路径信息。
本发明实施例中,步骤A1至步骤A3为公知技术,在此略去详述。
作为另一可选实施例,如果驱动程序加载函数为内核系统信息设置函数,图2为本发明实施例提取调用所述驱动程序加载函数的应用层进程的文件路径信息的流程示意图。参见图2,该流程包括:
步骤21,解析所述内核系统信息设置函数,获取第一参数以及第二参数;
步骤22,如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息。
本步骤中,作为一可选实施例,预先设置的索引值为38,通过判断第一参数中的操作系统信息的类型索引号是否为38,如果是,表明该参数是用于为待加载驱动程序设置操作系统扩展服务注册表信息对应的类型索引号,如果不是,则表明应用层进程的调用不是进行驱动程序的加载操作,则通知内核系统信息设置函数进行相应操作。
本发明实施例中,对于扇区创建函数以及扇区映射函数,提取调用所述驱动程序加载函数的应用层进程的文件路径信息的流程与内核系统信息设置函数相类似。文件路径信息中包含有驱动文件,通过驱动文件,可以获知驱动程序,驱动程序与应用程序为一一对应关系,因而,通过获取驱动程序加载操作的文件路径信息,可以获知应用层进程对应的应用程序,即可以获知向操作系统发送驱动程序加载请求的应用程序信息。
步骤13,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。
本步骤中,将获取的驱动程序在驱动程序特征库中进行搜索匹配,判断调用驱动程序加载函数的应用层进程加载的驱动程序是否是驱动程序,如果与预先设置的驱动程序特征库中的任一驱动程序不相同,则可以确定发起驱动程序加载请求的应用程序是正常应用程序。
因而,作为一可选实施例,该方法还可以包括:
如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。
本步骤中,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,解除对驱动程序加载函数的Hook操作,使得驱动程序加载函数可以进行驱动程序加载操作。
本发明实施例中,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,则认为该应用层进程为预先设置的应用程序进程,需要进行拦截,则结束本次操作,返回拒绝,从而拒绝该应用程序(或对应的应用层进程)的驱动程序加载请求,使得应用程序加载驱动程序的请求失败。例如,在用户电脑环境中,存在一应用程序A,对应的驱动程序为驱动程序B,由于驱动程序工作在操作系统内核中,能严重地破坏操作系统。假设通过在金山毒霸的防御驱动中注入Hook函数,Hook用以执行驱动程序加载的内核NtSetSystemInformation函数,这样,当应用程序A的进程调用内核NtShutdownSystem函数,以加载该应用程序对应的驱动程序B时,注入在金山毒霸的防御驱动中的Hook函数对该加载驱动程序B的行为进行拦截,并返回拒绝,使得应用程序A不能加载驱动程序B,应用程序A就不能在内核层中实现攻击操作系统的目的,从而更好地保护操作系统环境不被破坏。
本发明实施例中,作为一可选实施例,驱动程序特征库可通过相关技术人员在网络服务器通过对各应用程序运行的分析,选取能够对操作系统产生破坏的应用程序对应的驱动程序,形成驱动程序特征库,并将形成的驱动程序特征库下发至各应用终端,应用终端接收网络服务器下发的驱动程序特征库进行保存。当然,实际应用中,也可以由用户在本地设置驱动程序特征库,本发明实施例对此不作限定。
作为另一可选实施例,如果由用户在本地设置驱动程序特征库,该方法还可以包括:
将拒绝的驱动程序信息上报至预先设置的网络服务器。
本步骤中,用户设置或由操作系统自动将拒绝的驱动程序的相关信息进行上报,可以便于网络服务器统计各应用终端上报的驱动程序信息,并依据统计,确定哪些驱动程序为驱动程序,并设置该驱动程序的风险提示,从而在用户下载该驱动程序对应的应用程序时,提示相应的风险,使得用户能够慎重考虑是否下载该应用程序,以避免对用户的应用终端带来的安全隐患。
由上述可见,本发明实施例保护驱动程序的方法,在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。这样,通过Hook驱动程序加载函数,当应用程序调用驱动程序加载函数以加载对应的驱动程序时,能够及时拦截应用程序的加载行为,使得应用程序加载驱动程序的行为失败,从而更好地保护操作系统的安全,提升了操作系统的安全防护效率,增强了操作系统的安全性。
图3为本发明实施例保护驱动程序的装置结构示意图。参见图3,该装置包括:钩子模块31、驱动程序提取模块32以及操作处理模块33,其中,
钩子模块31,用于在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;
本发明实施例中,作为一可选实施例,所述应用层进程为一应用程序向操作系统发送驱动程序加载请求时,所述操作系统依据所述驱动程序加载请求为所述应用程序创建的进程。
本发明实施例中,驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合。其中,内核驱动加载函数可以是内核NtLoadDriver函数,内核系统信息设置函数可以是内核NtSetSystemInformation函数,扇区创建函数可以是内核NtCreateSection函数,扇区映射函数可以是内核NtMapViewOfSection函数。
本发明实施例中,钩子函数可在金山毒霸防御驱动程序加载时注入。
作为一可选实施例,钩子模块31包括:钩子函数注入单元、操作请求单元、进程创建单元、监测单元以及钩子单元(图中未示出),其中,
钩子函数注入单元,用于在内核层中注入预先设置的钩子函数,在操作系统启动后,激活所述钩子函数;
操作请求单元,用于接收应用程序向操作系统发送的驱动程序加载请求;
进程创建单元,用于依据所述驱动程序加载请求为所述应用程序创建应用层进程;
监测单元,用于利用所述钩子函数监测所述应用层进程是否调用驱动程序加载函数,在监测到应用层进程调用驱动程序加载函数时,通知钩子单元;
钩子单元,用户钩住所述驱动程序加载函数。
驱动程序提取模块32,用于提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;
本发明实施例中,作为一可选实施例,所述驱动程序加载函数为内核驱动加载函数,驱动程序提取模块32包括:内存地址获取单元、进程句柄获取单元、文件路径信息获取单元以及驱动程序获取单元(图中未示出),其中,
内存地址获取单元,用于获取调用所述驱动程序加载函数时的内存地址;
进程句柄获取单元,用于解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;
文件路径信息获取单元,用户利用所述进程句柄的内核对象获取文件路径信息;
驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。
作为另一可选实施例,所述驱动程序加载函数为内核系统信息设置函数,驱动程序提取模块32包括:参数解析单元、文件路径信息提取单元以及驱动程序获取单元,其中,
参数解析单元,用于解析所述内核系统信息设置函数,获取第一参数以及第二参数;
文件路径信息提取单元,如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息;
驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。
本发明实施例中,作为一可选实施例,所述内核系统信息设置函数为内核NtSetSystemInformation函数,所述预先设置的索引值为38。
本发明实施例中,对于扇区创建函数以及扇区映射函数,提取调用所述驱动程序加载函数的应用层进程的文件路径信息的流程与内核系统信息设置函数相类似。文件路径信息中包含有驱动文件,通过驱动文件,可以获知驱动程序,驱动程序与应用程序为一一对应关系。
操作处理模块33,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。
本发明实施例中,作为一可选实施例,操作处理模块33还用于如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。
本发明实施例中,作为一可选实施例,所述驱动程序特征库由用户在本地进行设置,该装置还包括:
信息上报模块34,用于将拒绝的驱动程序信息上报至预先设置的网络服务器。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的保护驱动程序的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种保护驱动程序的方法,其特征在于,该方法包括:
在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;
提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;
如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求;
其中,所述驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合;
所述驱动程序加载函数为内核驱动加载函数时,所述提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:获取调用所述驱动程序加载函数时的内存地址;解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;利用所述进程句柄的内核对象获取文件路径信息;
所述驱动程序加载函数为内核系统信息设置函数时,所述提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:解析所述内核系统信息设置函数,获取第一参数以及第二参数;如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息。
2.根据权利要求1所述的方法,其特征在于,所述内核系统信息设置函数为内核NtSetSystemInformation函数,所述预先设置的索引值为38。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述方法还包括:
如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。
4.根据权利要求1至2任一项所述的方法,其特征在于,所述驱动程序特征库由用户在本地进行设置,所述方法还包括:
将拒绝的驱动程序信息上报至预先设置的网络服务器。
5.一种保护驱动程序的装置,其特征在于,该装置包括:钩子模块、驱动程序提取模块以及操作处理模块,其中,
钩子模块,用于在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;
驱动程序提取模块,用于提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;
操作处理模块,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求;
其中,所述驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合;
所述驱动程序加载函数为内核驱动加载函数时,所述驱动程序提取模块包括:内存地址获取单元、进程句柄获取单元、文件路径信息获取单元以及驱动程序获取单元,其中,内存地址获取单元,用于获取调用所述驱动程序加载函数时的内存地址;进程句柄获取单元,用于解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;文件路径信息获取单元,用户利用所述进程句柄的内核对象获取文件路径信息;驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序;
所述驱动程序加载函数为内核系统信息设置函数时,所述驱动程序提取模块包括:参数解析单元、文件路径信息提取单元以及驱动程序获取单元,其中,
参数解析单元,用于解析所述内核系统信息设置函数,获取第一参数以及第二参数;文件路径信息提取单元,如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息;驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。
6.根据权利要求5所述的装置,其特征在于,所述内核系统信息设置函数为内核NtSetSystemInfomation函数,所述预先设置的索引值为38。
7.根据权利要求5至6任一项所述的装置,其特征在于,所述操作处理模块还用于如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。
8.根据权利要求5至6任一项所述的装置,其特征在于,所述驱动程序特征库由用户在本地进行设置,所述装置还包括:
信息上报模块,用于将拒绝的驱动程序信息上报至预先设置的网络服务器。
9.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一权利要求1-4所述的保护驱动程序的方法。
CN201610149567.4A 2016-03-16 2016-03-16 一种保护驱动程序的方法、装置及电子设备 Active CN105844146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610149567.4A CN105844146B (zh) 2016-03-16 2016-03-16 一种保护驱动程序的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610149567.4A CN105844146B (zh) 2016-03-16 2016-03-16 一种保护驱动程序的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN105844146A CN105844146A (zh) 2016-08-10
CN105844146B true CN105844146B (zh) 2018-10-12

Family

ID=56587247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610149567.4A Active CN105844146B (zh) 2016-03-16 2016-03-16 一种保护驱动程序的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN105844146B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446684B (zh) * 2016-09-22 2019-12-03 武汉斗鱼网络科技有限公司 一种基于密码控件的网络账号保护方法及系统
CN106778269B (zh) * 2016-12-01 2020-09-25 腾讯科技(深圳)有限公司 一种驱动层防注入方法、装置及客户端
CN108229171B (zh) * 2018-02-11 2023-05-12 腾讯科技(深圳)有限公司 驱动程序处理方法、装置及存储介质
CN111221571B (zh) * 2018-11-26 2024-03-15 西安诺瓦星云科技股份有限公司 外设驱动制作方法、装置以及计算机可读介质
CN110417771B (zh) * 2019-07-25 2021-07-09 福建天晴在线互动科技有限公司 一种通过驱动自动化拦截Windows自动更新的方法
CN112230927B (zh) * 2020-09-17 2024-08-06 贝壳技术有限公司 一种文件重定向方法、代码加载控制方法及装置
CN112699086A (zh) * 2020-12-30 2021-04-23 北京明朝万达科技股份有限公司 一种基于Windows系统的文件操作监控方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414339A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 保护进程内存及确保驱动程序加载的安全性的方法
CN101901323A (zh) * 2010-07-22 2010-12-01 湖北盛天网络技术有限公司 一种监控程序模块加载活动的系统过滤方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465717B2 (en) * 2013-03-14 2016-10-11 Riverbed Technology, Inc. Native code profiler framework

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414339A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 保护进程内存及确保驱动程序加载的安全性的方法
CN101901323A (zh) * 2010-07-22 2010-12-01 湖北盛天网络技术有限公司 一种监控程序模块加载活动的系统过滤方法

Also Published As

Publication number Publication date
CN105844146A (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
CN105844146B (zh) 一种保护驱动程序的方法、装置及电子设备
CN106201468B (zh) 一种截屏的处理方法、装置及电子设备
EP2852913B1 (en) Method and apparatus for determining malicious program
CN105677477B (zh) 一种优化应用程序资源的方法、装置及电子设备
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN106203077B (zh) 一种复制信息的处理方法、装置及电子设备
US10739956B2 (en) Information processing method, terminal, server, and computer storage medium
CN104468611A (zh) 基于双系统切换的数据安全处理方法及装置
CN104199654A (zh) 开放平台的调用方法及装置
CN105630551A (zh) 一种安装应用软件的方法、装置及电子设备
CN106682493B (zh) 一种防止进程被恶意结束的方法、装置及电子设备
CN106203092B (zh) 一种拦截恶意程序关机的方法、装置及电子设备
CN111464513A (zh) 数据检测方法、装置、服务器及存储介质
CN107908957B (zh) 一种智能终端的安全运行管理方法及系统
CN106845270A (zh) 一种无痕浏览方法及装置
CN114003904B (zh) 情报共享方法、装置、计算机设备及存储介质
CN106127034B (zh) 一种防止系统被恶意关闭的方法、装置及电子设备
CN103067246A (zh) 对基于即时通讯业务接收到的文件进行处理的方法及装置
CN105844148A (zh) 一种保护操作系统的方法、装置及电子设备
CN111124547A (zh) 任务处理方法及装置
CN107818260B (zh) 保障系统安全的方法及装置
CN108989298A (zh) 一种设备安全监控方法和装置
CN106169049B (zh) 一种处理线程注册的方法、装置及电子设备
CN106127051A (zh) 一种防止鼠标被恶意捕获的方法、装置及电子设备
CN106228062B (zh) 一种处理进程注册的方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190104

Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai Leopard Technology Co.,Ltd.

Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing

Patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.