驱动程序隐藏方法、装置和设备的制造方法

文档序号:10489278阅读:428来源:国知局
驱动程序隐藏方法、装置和设备的制造方法
【专利摘要】本发明公开了一种驱动程序隐藏方法、装置和设备,所述驱动程序隐藏方法包括以下步骤:操作系统执行驱动程序的入口函数加载所述驱动程序;获取存储驱动对象数据的链表;将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配;如果匹配成功,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。本发明实施例的驱动程序隐藏方法,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护。
【专利说明】
驱动程序隐藏方法、装置和设备
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种驱动程序隐藏方法、装置和设备。
【背景技术】
[0002]随着互联网技术发展,木马病毒等恶意程序层出不穷,杀毒软件对恶意程序的对抗技术越来越难。目前,一些恶意程序可对应用程序甚至是杀毒软件的驱动程序进行篡改或攻击,导致应用程序或者杀毒软件无法正常运行。因此,如何保护应用程序的驱动程序,以防止恶意程序对其进行篡改或攻击,已经成为一个亟需解决的问题。

【发明内容】

[0003]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明第一方面的目的在于提出一种驱动程序隐藏方法,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护。
[0004]本发明的第二方面的目的在于提出一种驱动程序隐藏装置。
[0005]本发明的第三方面的目的在于提出一种设备。
[0006]为达上述目的,根据本发明第一方面实施例提出了一种驱动程序隐藏方法,包括以下步骤:操作系统执行驱动程序的入口函数加载所述驱动程序;获取存储驱动对象数据的链表;将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配;如果匹配成功,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。
[0007]结合第一方面,在第一方面的第一种实施方式中,所述获取存储驱动对象数据的链表,包括:
[0008]从所述入口函数的驱动对象参数中获取驱动对象指针地址;
[0009]根据所述驱动对象指针地址获取存储驱动对象数据的链表。
[0010]结合第一方面,在第一方面的第二种实施方式中,所述链表节点为结构数据,其中,所述结构数据保存驱动对象,驱动程序名称,例程函数。
[0011]结合第一方面,在第一方面的第三种实施方式中,所述将与所述驱动程序对应的链表节点删除,包括:
[0012]将与所述驱动程序对应的链表节点中的驱动对象,驱动程序名称,例程函数地址清空。
[0013]本发明实施例的驱动程序隐藏方法,通过操作系统执行驱动程序的入口函数加载所述驱动程序,并获取存储驱动对象数据的链表,将该链表中与驱动程序匹配的链表节点删除,以对驱动程序进行隐藏处理,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护,从而提升系统安全性。
[0014]本发明的第二方面的实施例提供了一种驱动程序隐藏装置,包括:加载模块,通过操作系统执行驱动程序的入口函数加载所述驱动程序;获取模块,用于获取存储驱动对象数据的链表;匹配模块,用于将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配;处理模块,用于在匹配成功时,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。
[0015]结合第二方面,在第二方面的第一种实施方式中,所述获取模块用于:
[0016]从所述入口函数的驱动对象参数中获取驱动对象指针地址;
[0017]根据所述驱动对象指针地址获取存储驱动对象数据的链表。
[0018]结合第二方面,在第二方面的第二种实施方式中,所述链表节点为结构数据,其中,所述结构数据保存驱动对象,驱动程序名称,例程函数。
[0019]结合第二方面,在第二方面的第三种实施方式中,所述处理模块用于:
[0020]将与所述驱动程序对应的链表节点中的驱动对象,驱动程序名称,例程函数地址清空。
[0021]本发明实施例的驱动程序隐藏装置,通过操作系统执行驱动程序的入口函数加载所述驱动程序,并获取存储驱动对象数据的链表,将该链表中与驱动程序匹配的链表节点删除,以对驱动程序进行隐藏处理,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护,从而提升系统安全性。
[0022]本发明的第三方面的实施例提供了一种设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:操作系统执行驱动程序的入口函数加载所述驱动程序;获取存储驱动对象数据的链表;将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配;如果匹配成功,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。
[0023]本发明实施例的设备,通过操作系统执行驱动程序的入口函数加载所述驱动程序,并获取存储驱动对象数据的链表,将该链表中与驱动程序匹配的链表节点删除,以对驱动程序进行隐藏处理,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护,从而提升系统安全性。
【附图说明】
[0024]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0025]图1为根据本发明一个实施例的驱动程序隐藏方法的流程图;
[0026]图2为根据本发明一个实施例的驱动程序隐藏装置的结构示意图。
【具体实施方式】
[0027]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0028]下面参考附图描述根据本发明实施例的驱动程序隐藏方法、装置和设备。
[0029]图1为根据本发明一个实施例的驱动程序隐藏方法的流程图。
[0030]如图1所示,根据本发明实施例的驱动程序隐藏方法,包括以下步骤:
[0031 ] SlOl,操作系统执行驱动程序的入口函数加载所述驱动程序。
[0032]其中,驱动程序的入口函数为驱动程序最开始执行的函数。
[0033]驱动程序可以是各种软件的驱动程序,如杀毒软件、安全软件、应用程序等,也可以是硬件设备的驱动程序,如鼠标、键盘、显卡等硬件设备的驱动程序。
[0034]因此,操作系统可通过执行驱动程序的入口函数加载驱动程序。
[0035]S102,获取用于存储驱动对象数据的链表。
[0036]当一个驱动执行后,该驱动程序对应的驱动对象可被存储到驱动对象数据的链表中。该链表包括多个链表节点,每个链表节点为一结构数据,该结构数据用于保存驱动程序的驱动对象、驱动程序名称、例程函数等数据,其中,例程函数可包括但不限于入口函数、打开函数、卸载函数等。
[0037]从而可通过查询该链表找到一个驱动程序的驱动对象数据。在本发明的一个实施例中,可从所述入口函数的驱动对象参数中获取驱动对象指针地址;根据所述驱动对象指针地址获取存储驱动对象数据的链表。具体地,可根据驱动对象参数中的驱动对象指针地址减去预设值,得到用于存储驱动对象数据的链表的链表头的地址,进而获取用于存储驱动对象数据的链表。
[0038]S103,将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配。
[0039]S104,如果匹配成功,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。
[0040]在本发明的一个实施例中,可将与所述驱动程序对应的链表节点中的驱动对象,驱动程序名称,例程函数地址清空,以将与所述驱动程序对应的链表节点删除。
[0041 ]举例来说,在操作系统执行驱动程序的入口函数后,驱动对象参数DriverObject即被存储在驱动对象数据的链表Typeli st中。可通过定位Type I i st链表头,然后将Typeli st链表头从驱动对象参数DriverObject指针地址减去预设值(例如为0x10)的位置开始,枚举每个链表节点,判断当前枚举到的链表节点中的驱动对象数据是否与所述驱动程序对应驱动对象数据匹配。如果匹配,则删除匹配到的当前链表节点,即将与所述驱动程序对应的链表节点删除,接上下一个节点,实现对驱动程序的隐藏。
[0042]从而,可通过定位到存储有加载的驱动程序的驱动对象数据的链表,并将链表中存储该驱动对象数据链表节点删除,实现驱动程序的隐藏,能够对驱动程序进行保护,提升系统安全性。
[0043]本发明实施例的驱动程序隐藏方法,通过操作系统执行驱动程序的入口函数加载所述驱动程序,并获取存储驱动对象数据的链表,将该链表中与驱动程序匹配的链表节点删除,以对驱动程序进行隐藏处理,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护,从而提升系统安全性。
[0044]特别当驱动程序为杀毒软件、安全软件等安全防护程序的驱动程序时,通过对安全防护软件的核心驱动程序的隐藏和保护,能够有效避免安全防护软件被篡改和攻击的可能,有效提升系统安全性。
[0045]为了实现上述实施例,本发明还提出一种驱动程序隐藏装置。
[0046]图2为根据本发明一个实施例的驱动程序隐藏装置的结构示意图。
[0047]如图2所示,根据本发明实施例的驱动程序隐藏装置,包括:加载模块10、获取模块20、匹配模块30和处理模块40。
[0048]加载模块10通过操作系统执行驱动程序的入口函数加载所述驱动程序。
[0049]其中,驱动程序的入口函数为驱动程序最开始执行的函数。
[0050]驱动程序可以是各种软件的驱动程序,如杀毒软件、安全软件、应用程序等,也可以是硬件设备的驱动程序,如鼠标、键盘、显卡等硬件设备的驱动程序。
[0051 ]因此,操作系统可通过执行驱动程序的入口函数加载驱动程序。
[0052]获取模块20用于获取存储驱动对象数据的链表。
[0053]当一个驱动执行后,该驱动程序对应的驱动对象可被存储到驱动对象数据的链表中。该链表包括多个链表节点,每个链表节点为一结构数据,该结构数据用于保存驱动程序的驱动对象、驱动程序名称、例程函数等数据,其中,例程函数可包括但不限于入口函数、打开函数、卸载函数等。
[0054]从而可通过查询该链表找到一个驱动程序的驱动对象数据。在本发明的一个实施例中,获取模块20可用于:从所述入口函数的驱动对象参数中获取驱动对象指针地址;根据所述驱动对象指针地址获取存储驱动对象数据的链表。具体地,获取模块20可根据驱动对象参数中的驱动对象指针地址减去预设值,得到用于存储驱动对象数据的链表的链表头的地址,进而获取用于存储驱动对象数据的链表。
[0055]匹配模块30用于将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配。
[0056]处理模块40用于在匹配成功时,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。
[0057]在本发明的一个实施例中,处理模块40可用于将与所述驱动程序对应的链表节点中的驱动对象,驱动程序名称,例程函数地址清空,以将与所述驱动程序对应的链表节点删除。
[0058]举例来说,在操作系统执行驱动程序的入口函数后,驱动对象参数DriverObject即被存储在驱动对象数据的链表Typelist中。获取模块20可通过定位Type list链表头,然后将Typelist链表头从驱动对象参数DriverObject指针地址减去预设值(例如为0x10)的位置开始,枚举每个链表节点,判断当前枚举到的链表节点中的驱动对象数据是否与所述驱动程序对应驱动对象数据匹配。如果匹配,则处理模块40删除匹配到的当前链表节点,SP将与所述驱动程序对应的链表节点删除,接上下一个节点,实现对驱动程序的隐藏。
[0059]从而,可通过定位到存储有加载的驱动程序的驱动对象数据的链表,并将链表中存储该驱动对象数据链表节点删除,实现驱动程序的隐藏,能够对驱动程序进行保护,提升系统安全性。
[0060]本发明实施例的驱动程序隐藏装置,通过操作系统执行驱动程序的入口函数加载所述驱动程序,并获取存储驱动对象数据的链表,将该链表中与驱动程序匹配的链表节点删除,以对驱动程序进行隐藏处理,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护,从而提升系统安全性。
[0061]特别当驱动程序为杀毒软件、安全软件等安全防护程序的驱动程序时,通过对安全防护软件的核心驱动程序的隐藏和保护,能够有效避免安全防护软件被篡改和攻击的可能,有效提升系统安全性。
[0062]为了实现上述实施例,本发明还提出一种设备。
[0063]根据本发明实施例的设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本发明任一实施例所示的驱动程序隐藏方法。
[0064]本发明实施例的设备,通过操作系统执行驱动程序的入口函数加载所述驱动程序,并获取存储驱动对象数据的链表,将该链表中与驱动程序匹配的链表节点删除,以对驱动程序进行隐藏处理,能够避免恶意程序获取各种软件或设备的驱动程序,实现对驱动程序的保护,从而提升系统安全性。
[0065]特别当驱动程序为杀毒软件、安全软件等安全防护程序的驱动程序时,通过对安全防护软件的核心驱动程序的隐藏和保护,能够有效避免安全防护软件被篡改和攻击的可能,有效提升系统安全性。
[0066]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0067]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,例如两个,三个等,除非另有明确具体的限定。
[0068]在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0069]在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0070]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0071]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【主权项】
1.一种驱动程序隐藏方法,其特征在于,包括以下步骤: 操作系统执行驱动程序的入口函数加载所述驱动程序; 获取存储驱动对象数据的链表; 将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配; 如果匹配成功,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。2.如权利要求1所述的方法,其特征在于,所述获取存储驱动对象数据的链表,包括: 从所述入口函数的驱动对象参数中获取驱动对象指针地址; 根据所述驱动对象指针地址获取存储驱动对象数据的链表。3.如权利要求1所述的方法,其特征在于,所述链表节点为结构数据,其中,所述结构数据保存驱动对象,驱动程序名称,例程函数。4.如权利要求1所述的方法,其特征在于,所述将与所述驱动程序对应的链表节点删除,包括: 将与所述驱动程序对应的链表节点中的驱动对象,驱动程序名称,例程函数地址清空。5.一种驱动程序隐藏装置,其特征在于,包括: 加载模块,通过操作系统执行驱动程序的入口函数加载所述驱动程序; 获取模块,用于获取存储驱动对象数据的链表; 匹配模块,用于将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配; 处理模块,用于在匹配成功时,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏处理。6.如权利要求5所述的装置,其特征在于,所述获取模块用于: 从所述入口函数的驱动对象参数中获取驱动对象指针地址; 根据所述驱动对象指针地址获取存储驱动对象数据的链表。7.如权利要求5所述的装置,其特征在于,所述链表节点为结构数据,其中,所述结构数据保存驱动对象,驱动程序名称,例程函数。8.如权利要求5所述的装置,其特征在于,所述处理模块用于: 将与所述驱动程序对应的链表节点中的驱动对象,驱动程序名称,例程函数地址清空。9.一种设备,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中, 所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上; 所述电源电路,用于为所述移动终端的各个电路或器件供电; 所述存储器用于存储可执行程序代码; 所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于: 操作系统执行驱动程序的入口函数加载所述驱动程序; 获取存储驱动对象数据的链表; 将所述链表中每个链表节点中的驱动对象数据与所述驱动程序进行匹配; 如果匹配成功,将与所述驱动程序对应的链表节点删除,以对所述驱动程序进行隐藏 bo
【文档编号】G06F21/56GK105844159SQ201610451654
【公开日】2016年8月10日
【申请日】2016年6月21日
【发明人】李文靖
【申请人】北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1