一种删除注册表启动项的方法、装置及电子设备制造方法及图纸

技术编号:14120101 阅读:46 留言:0更新日期:2016-12-08 12:17
本发明专利技术的实施例公开一种删除注册表启动项的方法、装置及电子设备,涉及计算机软件技术,能够解决现有技术中由于无法删除恶意程序的启动项所造成的系统安全性低的问题。所述删除恶意文件的方法包括:获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据;根据所述预设数据结构获取所述第一注册表键值数据的数据长度值;如果所述第一注册表键值数据的数据长度值大于0,则删除所述第一注册表键值数据对应的第一注册表启动项。本发明专利技术适用于杀毒软件中。

【技术实现步骤摘要】

本专利技术涉及计算机软件技术,尤其涉及一种删除注册表启动项的方法、装置及电子设备
技术介绍
随着互联网技术的发展,病毒、木马等恶意软件层出不穷。一般程序的注册表启动项存储在:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run下,并在其下保存有注册表键值,如“av1”,“acb”等LPCTSTR类型的字符串。在C语言开发中,字符串都是以“\\00”字符结束的。如某个注册表键值为“av1\\00”,在实际应用中可以“av1”为参数,通过删除函数RegDeleteValue删除恶意程序的启动项。但是,在具体应用中,为了防止被删除,恶意程序通常会构造特殊的注册表键值,如“\\00av1”等。由于该注册表键值是以\\00字符开始的,而\\00字符又代表注册表键值的结束,所以,在利用RegDeleteValue函数删除启动项时,会认为该启动项对应的注册表键值为空而无法删除该恶意程序的启动项,从而降低了系统的安全性。
技术实现思路
有鉴于此,本专利技术实施例提供一种删除注册表启动项的方法、装置及电子设备,能够解决现有技术中由于无法删除恶意程序的启动项所造成的系统安全性低的问题。第一方面,本专利技术实施例提供一种删除注册表启动项的方法,包括:获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据;根据所述预设数据结构获取所述第一注册表键值数据的数据长度值;如果所述第一注册表键值数据的数据长度值大于0,则删除所述第一注册表键值数据对应的第一注册表启动项。结合第一方面,在第一方面的第一种实施方式中,所述获取系统注册表启动项下的各注册表键值数据包括:利用ndll模块中的枚举键值函数NtEnumerateValueKey获取系统注册表启动项下的各注册表键值数据。结合第一方面,在第一方面的第一种实施方式中,所述第一字符为“\\00”,所述预设数据结构为_UNICODE_STRING。结合第一方面,在第一方面的第一种实施方式中,所述删除所述第一注册表键值数据对应的第一注册表启动项包括:获取所述第一注册表启动项的名称;将所述第一注册表启动项的名称存储在链表中;根据所述链表调用ntdll模块中的删除键值函数NtDeleteValueKey删除所述第一注册表启动项。第二方面,本专利技术实施例提供一种删除注册表启动项的装置,包括:第一获取模块,用于获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;第二获取模块,用于在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据;第三获取模块,用于根据所述预设数据结构获取所述第一注册表键值数据的数据长度值;删除模块,用于在所述第一注册表键值数据的数据长度值大于0时,删除所述第一注册表键值数据对应的第一注册表启动项。结合第二方面,在第二方面的第一种实施方式中,所述第一获取模块具体用于:利用ndll模块中的枚举键值函数NtEnumerateValueKey获取系统注册表启动项下的各注册表键值数据。结合第二方面,在第二方面的第一种实施方式中,所述第一字符为“\\00”,所述预设数据结构为_UNICODE_STRING。结合第二方面,在第二方面的第一种实施方式中,所述删除模块包括:获取子模块,用于获取所述第一注册表启动项的名称;存储子模块,用于将所述第一注册表启动项的名称存储在链表中;删除子模块,用于根据所述链表调用ntdll模块中的删除键值函数NtDeleteValueKey删除所述所述第一注册表启动项。第三方面,本专利技术实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行如下操作:获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据;根据所述预设数据结构获取所述第一注册表键值数据的数据长度值;如果所述第一注册表键值数据的数据长度值大于0,则删除所述第一注册表键值数据对应的第一注册表启动项。第四方面,本专利技术实施例还提供了一种存储介质,用于存储应用程序,所述应用程序用于执行本专利技术实施例所提供的一种删除注册表启动项的方法。第五方面,本专利技术实施例还提供了一种应用程序,用于执行本专利技术实施例所提供的一种删除注册表启动项的方法。本专利技术实施例提供的一种删除注册表启动项的方法、装置及电子设备,获取各注册表键值数据中以第一字符为起始字符的第一注册表键值数据,并判断第一注册表键值数据的数据长度值是否为0。如果所述第一注册表键值数据的数据长度值大于0,则删除所述第一注册表键值数据对应的第一注册表启动项。因而,利用本专利技术实施例的方案即使是在恶意程序构造特殊启动项键值的情况下仍能区分出恶意程序的启动项并将其删除,从而能够解决现有技术中由于无法删除恶意程序的启动项所造成的系统安全性低的问题,保证了系统的安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术的实施例一的删除注册表启动项的方法的流程图;图2为本专利技术的实施例二的删除注册表启动项的装置的结构示意图;图3为本专利技术电子设备一个实施例的结构示意图。具体实施方式下面结合附图对本专利技术实施例进行详细描述。应当明确,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。图1为本专利技术的实施例一的删除注册表启动项的流程图。如图1所示,本实施例的删除恶意文件的方法可以包括:步骤101、获取系统注册表启动项下的各注册表键值数据。本专利技术实施例可适用于PC等设备。具体的,在此步骤中,利用ndll模块中的枚举键值函数NtEnumerateValueKey获取系统注册表启动项下的各注册表键值数据。具体的,在此通过枚举键值函数枚举HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run注册表启动项下面的所有注册表键值数据。通过枚举键值函数获取的各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值。其中,该预设数据结构可以是_UNICODE_本文档来自技高网...
一种删除注册表启动项的方法、装置及电子设备

【技术保护点】
一种删除注册表启动项的方法,其特征在于,包括:获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据:根据所述预设数据结构获取所述第一注册表键值数据的数据长度值;如果所述第一注册表键值数据的数据长度值大于0,则删除所述第一注册表键值数据对应的第一注册表启动项。

【技术特征摘要】
1.一种删除注册表启动项的方法,其特征在于,包括:获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据:根据所述预设数据结构获取所述第一注册表键值数据的数据长度值;如果所述第一注册表键值数据的数据长度值大于0,则删除所述第一注册表键值数据对应的第一注册表启动项。2.根据权利要求1所述的删除注册表启动项的方法,其特征在于,所述获取系统注册表启动项下的各注册表键值数据包括:利用ndll模块中的枚举键值函数NtEnumerateValueKey获取系统注册表启动项下的各注册表键值数据。3.根据权利要求1所述的删除注册表启动项的方法,其特征在于,所述第一字符为“\\00”,所述预设数据结构为_UNICODE_STRING。4.根据权利要求1所述的删除注册表启动项的方法,其特征在于,所述删除所述第一注册表键值数据对应的第一注册表启动项包括:获取所述第一注册表启动项的名称;将所述第一注册表启动项的名称存储在链表中;根据所述链表调用ntdll模块中的删除键值函数NtDeleteValueKey删除所述第一注册表启动项。5.一种删除注册表启动项的装置,其特征在于,包括:第一获取模块,用于获取系统注册表启动项下的各注册表键值数据,所述各注册表键值数据保存在预设数据结构的指针中,在所述预设数据结构中还包括所述各注册表键值数据对应的数据长度值;第二获取模块,用于在所述各注册表键值数据中获取以第一字符为起始字符的第一注册表键值数据;第三获取模块,用于根据所述预设数据结构获取所述第一注册表键值数据的数据长...

【专利技术属性】
技术研发人员:李文靖
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

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

1