文件删除方法、装置及电子设备与流程

文档序号:11808336阅读:448来源:国知局
文件删除方法、装置及电子设备与流程

本发明涉及计算机技术领域,尤其涉及一种文件删除方法、装置及电子设备。



背景技术:

随着互联网技术的快速发展,病毒、木马等恶意软件层出不穷。恶意软件利用加载恶意驱动程序,保护自身软件不被杀毒软件删除,达到自我保护的目的。目前,在删除文件时,主要在应用层调用DeleteFile函数,在内核层调用NtDeleteFile函数,然后调用NtSetInformationFile函数,再交由内核层的磁盘驱动将文件从磁盘中删除。但是,有的恶意软件会在内核层挂钩驱动程序,拦截删除操作,导致文件无法被删除。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种文件删除方法,该方法能够实现对顽固的恶意文件的清除,保证系统信息安全。

本发明的第二个目的在于提出一种文件删除装置。

本发明的第三个目的在于提出一种电子设备。

为实现上述目的,本发明第一方面实施例提出了一种文件删除方法,包括以下步骤:接收针对目标文件的文件删除指令;根据所述文件删除指令在应用层调用并执行第一删除文件函数;在内核层调用并执行第二删除文件函数;在所述内核层检测生成文件信息函数是否与恶意程序挂钩;如果所述生成文件信息函数与恶意程序挂钩,则在所述内核层调用并执行预设函数,以生成所述目标文件对应的输入输出请求包IRP;下发所述IRP,并控制文件系统解析所述IRP,以及根据解析结果控制磁盘驱动删除所述目标文件。

可选的,在所述内核层调用并执行预设函数,包括:创建所述IRP;将所述IRP中的第一预设字段设置为预设值;调用第一函数和第二函数设置所述IRP。

可选的,创建所述IRP,包括:获取目标文件的路径;根据所述路径打开所述目标文件,并获取所述目标文件的句柄;根据所述句柄获取所述目标文件的文件对象;根据所述文件对象获取所述目标文件所在的设备对象信息;根据所述设备对象信息创建所述IRP。

可选的,将所述IRP中的第一预设字段设置为预设值,包括:获取文件删除结构数据;将所述文件删除结构数据中的第二预设字段设置为预设值;将所述预设值赋值至所述第一预设字段。

为实现上述目的,本发明第二方面实施例提出了一种文件删除装置,包括:接收模块,用于接收针对目标文件的文件删除指令;第一执行模块,用于根据所述文件删除指令在应用层调用并执行第一删除文件函数;第二执行模块,用于在内核层调用并执行第二删除文件函数;检测模块,用于在所述内核层检测生成文件信息函数是否与恶意程序挂钩;生成模块,用于当所述生成文件信息函数与恶意程序挂钩时,在所述内核层调用并执行预设函数,以生成所述目标文件对应的输入输出请求包IRP;删除模块,用于下发所述IRP,并控制文件系统解析所述IRP,以及根据解析结果控制磁盘驱动删除所述目标文件。

可选的,所述生成模块,包括:创建子模块,用于创建所述IRP;设置子模块,用于将所述IRP中的第一预设字段设置为预设值;调用子模块,用于调用第一函数和第二函数设置所述IRP。

可选的,所述创建子模块,包括:第一获取单元,用于获取目标文件的路径;第二获取单元,用于根据所述路径打开所述目标文件,并获取所述目标文件的句柄;第三获取单元,用于根据所述句柄获取所述目标文件的文件对象;第四获取单元,用于根据所述文件对象获取所述目标文件所在的设备对象信息;创建单元,用于根据所述设备对象信息创建所述IRP。

可选的,所述设置子模块,包括:第五获取单元,用于获取文件删除结构数据;设置单元,用于将所述文件删除结构数据中的第二预设字段设置为预设值;赋值单元,用于将所述预设值赋值至所述第一预设字段。

为实现上述目的,本发明第三方面实施例提出了一种电子设备,该电子设备包括处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:

接收针对目标文件的文件删除指令;

根据所述文件删除指令在应用层调用并执行第一删除文件函数;

在内核层调用并执行第二删除文件函数;

在所述内核层检测生成文件信息函数是否与恶意程序挂钩;

如果所述生成文件信息函数与恶意程序挂钩,则在所述内核层调用并执行预设函数,以生成所述目标文件对应的输入输出请求包IRP;

下发所述IRP,并控制文件系统解析所述IRP,以及根据解析结果控制磁盘驱动删除所述目标文件。

为实现上述目的,本发明第四方面实施例提出了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明所述的一种文件删除方法。

为实现上述目的,本发明第五方面实施例提出了一种应用程序,其中,所述应用程序用于在运行时执行本发明所述的一种文件删除方法。

在本发明中,通过在内核层调用并执行预设函数,生成与目标文件对应的IRP,最终控制文件系统对IRP进行解析,从而根据解析结果控制磁盘驱动删除所述目标文件,绕过与恶意程序挂钩的函数对目标文件的防护,实现对顽固的恶意文件的清除,保证系统信息安全。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1是根据本发明一个实施例的文件删除方法的流程图;

图2是根据本发明一个实施例的在内核层调用并执行预设函数的流程图;

图3是根据本发明一个实施例的文件删除装置的结构示意图;

图4是根据本发明一个实施例的电子设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的文件删除方法、装置及电子设备。

图1是根据本发明一个实施例的文件删除方法的流程图,如图1所示,该方法包括:

S101、接收针对目标文件的文件删除指令。

在实际应用中,用户要删除某一文件,可打开该文件所在的目录,并直接对该文件进行删除操作。当然,也可以通过第三方软件选中该文件,然后利用第三方软件实现文件的删除。其中,第三方软件可包括文件管理类软件、杀毒软件等。

在本发明的一个实施例中,杀毒软件可接收针对目标文件的文件删除指令。

S102、根据文件删除指令在应用层调用并执行第一删除文件函数。

其中,第一删除文件函数可以是DeleteFile函数。

S103、在内核层调用并执行第二删除文件函数。

其中,第二删除文件函数可以是NtDeleteFile函数。

S104、在内核层检测生成文件信息函数是否与恶意程序挂钩。

其中,生成文件信息函数可以是NtSetInformationFile函数,其作用是封装IRP。NtSetInformationFile函数可向文件系统下发IRP,IRP中包括目标文件的信息。如果该函数与恶意程序挂钩,则现有的删除操作可能无法获取目标文件的信息,导致无法删除目标文件。因此,杀毒软件需要绕过与恶意程序挂钩的函数,来实现文件的删除。

S105、如果生成文件信息函数与恶意程序挂钩,则在内核层调用并执行预设函数,以生成目标文件对应的输入输出请求包IRP。

具体地,如图2所示,在内核层调用并执行预设函数可包括以下步骤:

S1051、创建IRP。

首先,可获取目标文件的路径。然后根据路径打开目标文件,并获取目标文件的句柄,再根据句柄获取目标文件的文件对象。之后,可根据文件对象获取目标文件所在的设备对象信息,最后根据设备对象信息创建IRP(I/O request packets,输入输出请求包)。

例如,首先可获取目标文件路径,然后调用IoCreateFile函数打开目标文件,获取目标文件的句柄Handle。以Handle为参数调用ObReferenceObjectByHandle函数,以获取文件对象。以文件对象为参数调用IoGetRelatedDeviceObject函数,以获取文件所在的设备对象如C盘、D盘等。再以设备对象为参数,调用IoAllocateIrp函数创建IRP。

S1052、将IRP中的第一预设字段设置为预设值。

首先,可获取文件删除结构数据,然后将文件删除结构数据中的第二预设字段设置为预设值,最后将预设值赋值至第一预设字段。其中,第一预设字段可以为Irp.SystemBuffer。第二预设字段可以为FileInformation.DeleteFile。

例如:文件删除结构数据可以为FILE_DISPOSITION_INFORMATION结构,其中,该结构中的一个字段为FileInformation.DeleteFile,将该字段的值设置为1,表示目标文件为待删除状态。然后把文件删除结构数据FileInformation赋值给Irp.SystemBuffer。

S1053、调用第一函数和第二函数设置IRP。

其中,第一函数可以为IoSetCompletionRoutine,第二函数可以为IoCallDriver。

具体地,可通过调用IoSetCompletionRoutine和IoCallDriver这两个函数对IRP进行设置。

S106、下发IRP,并控制文件系统解析IRP,以及根据解析结果控制磁盘驱动删除目标文件。

在本发明的一个实施例中,可下发设置好的IRP,然后控制文件系统对该IRP进行解析,然后解析出目标文件的相关信息,从而控制磁盘驱动删除目标文件。最终,达到绕过与恶意程序挂钩的函数,删除目标文件的目的。

本发明实施例的文件删除方法,通过在内核层调用并执行预设函数,生成与目标文件对应的IRP,最终控制文件系统对IRP进行解析,从而根据解析结果控制磁盘驱动删除目标文件,能够绕过与恶意程序挂钩的函数对目标文件的防护,实现对顽固的恶意文件的清除,保证系统信息安全。

为了实现上述实施例,本发明还提出一种文件删除装置。

图3是根据本发明一个实施例的文件删除装置的结构示意图。

如图3所示,该装置包括:接收模块110、第一执行模块120、第二执行模块130、检测模块140、生成模块150和删除模块160。

接收模块110用于接收针对目标文件的文件删除指令。

在实际应用中,用户要删除某一文件,可打开该文件所在的目录,并直接对该文件进行删除操作。当然,也可以通过第三方软件选中该文件,然后利用第三方软件实现文件的删除。其中,第三方软件可包括文件管理类软件、杀毒软件等。

在本发明的一个实施例中,接收模块110可接收针对目标文件的文件删除指令。

第一执行模块120用于根据文件删除指令在应用层调用并执行第一删除文件函数。其中,第一删除文件函数可以是DeleteFile函数。

第二执行模块130用于在内核层调用并执行第二删除文件函数。其中,第二删除文件函数可以是NtDeleteFile函数。

检测模块140用于在内核层检测生成文件信息函数是否与恶意程序挂钩。其中,生成文件信息函数可以是NtSetInformationFile函数,其作用是封装IRP。NtSetInformationFile函数可向文件系统下发IRP,IRP中包括目标文件的信息。如果该函数与恶意程序挂钩,则现有的删除操作可能无法获取目标文件的信息,导致无法删除目标文件。因此,杀毒软件需要绕过与恶意程序挂钩的函数,来实现文件的删除。

生成模块150用于当生成文件信息函数与恶意程序挂钩时,在内核层调用并执行预设函数,以生成目标文件对应的输入输出请求包IRP。

其中,生成模块150可包括创建子模块151、设置子模块152和调用子模块153。

创建子模块151用于创建IRP。其中,创建子模块151进一步包括第一获取单元1511、第二获取单元1512、第三获取单元1513、第四获取单元1514和创建单元1515。

首先,第一获取单元1511可获取目标文件的路径。然后第二获取单元1512可根据路径打开目标文件,并获取目标文件的句柄,第三获取单元1513再根据句柄获取目标文件的文件对象。之后,第四获取单元1514可根据文件对象获取目标文件所在的设备对象信息,最后创建单元1515可根据设备对象信息创建IRP(I/O request packets,输入输出请求包)。

例如,首先可获取目标文件路径,然后调用IoCreateFile函数打开目标文件,获取目标文件的句柄Handle。以Handle为参数调用ObReferenceObjectByHandle函数,以获取文件对象。以文件对象为参数调用IoGetRelatedDeviceObject函数,以获取文件所在的设备对象如C盘、D盘等。再以设备对象为参数,调用IoAllocateIrp函数创建IRP。

设置子模块152用于将IRP中的第一预设字段设置为预设值。其中,设置子模块152进一步包括第五获取单元1521、设置单元1522和赋值单元1523。

首先,第五获取单元1521可获取文件删除结构数据,然后设置单元1522将文件删除结构数据中的第二预设字段设置为预设值,最后赋值单元1523将预设值赋值至第一预设字段。其中,第一预设字段可以为Irp.SystemBuffer。第二预设字段可以为FileInformation.DeleteFile。

例如:文件删除结构数据可以为FILE_DISPOSITION_INFORMATION结构,其中,该结构中的一个字段为FileInformation.DeleteFile,将该字段的值设置为1,表示目标文件为待删除状态。然后把文件删除结构数据FileInformation赋值给Irp.SystemBuffer。

调用子模块153用于调用第一函数和第二函数设置IRP。其中,第一函数可以为IoSetCompletionRoutine,第二函数可以为IoCallDriver。

具体地,调用子模块153可通过调用IoSetCompletionRoutine和IoCallDriver这两个函数对IRP进行设置。

删除模块160用于下发IRP,并控制文件系统解析IRP,以及根据解析结果控制磁盘驱动删除目标文件。

在本发明的一个实施例中,删除模块160可下发设置好的IRP,然后控制文件系统对该IRP进行解析,然后解析出目标文件的相关信息,从而控制磁盘驱动删除目标文件。最终,达到绕过与恶意程序挂钩的函数,删除目标文件的目的。

本发明实施例的文件删除装置,通过在内核层调用并执行预设函数,生成与目标文件对应的IRP,最终控制文件系统对IRP进行解析,从而根据解析结果控制磁盘驱动删除目标文件,能够绕过与恶意程序挂钩的函数对目标文件的防护,实现对顽固的恶意文件的清除,保证系统信息安全。

为了实现上述实施例,本发明还提出一种电子设备。

图4是根据本发明一个实施例的电子设备的结构示意图。

如图4所示,该电子设备包括处理器41、存储器42、通信接口43和总线44,其中:处理器41、存储器42和通信接口43通过总线44连接并完成相互间的通信;存储器42存储可执行程序代码;处理器41通过读取存储器42中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:

S101’、接收针对目标文件的文件删除指令。

在实际应用中,用户要删除某一文件,可打开该文件所在的目录,并直接对该文件进行删除操作。当然,也可以通过第三方软件选中该文件,然后利用第三方软件实现文件的删除。其中,第三方软件可包括文件管理类软件、杀毒软件等。

在本发明的一个实施例中,杀毒软件可接收针对目标文件的文件删除指令。

S102’、根据文件删除指令在应用层调用并执行第一删除文件函数。

其中,第一删除文件函数可以是DeleteFile函数。

S103’、在内核层调用并执行第二删除文件函数。

其中,第二删除文件函数可以是NtDeleteFile函数。

S104’、在内核层检测生成文件信息函数是否与恶意程序挂钩。

其中,生成文件信息函数可以是NtSetInformationFile函数,其作用是封装IRP。NtSetInformationFile函数可向文件系统下发IRP,IRP中包括目标文件的信息。如果该函数与恶意程序挂钩,则现有的删除操作可能无法获取目标文件的信息,导致无法删除目标文件。因此,杀毒软件需要绕过与恶意程序挂钩的函数,来实现文件的删除。

S105’、如果生成文件信息函数与恶意程序挂钩,则在内核层调用并执行预设函数,以生成目标文件对应的输入输出请求包IRP。

具体地,如图2所示,在内核层调用并执行预设函数可包括以下步骤:

S1051’、创建IRP;

首先,可获取目标文件的路径。然后根据路径打开目标文件,并获取目标文件的句柄,再根据句柄获取目标文件的文件对象。之后,可根据文件对象获取目标文件所在的设备对象信息,最后根据设备对象信息创建IRP(I/O request packets,输入输出请求包)。

例如,首先可获取目标文件路径,然后调用IoCreateFile函数打开目标文件,获取目标文件的句柄Handle。以Handle为参数调用ObReferenceObjectByHandle函数,以获取文件对象。以文件对象为参数调用IoGetRelatedDeviceObject函数,以获取文件所在的设备对象如C盘、D盘等。再以设备对象为参数,调用IoAllocateIrp函数创建IRP。

S1052’、将IRP中的第一预设字段设置为预设值。

首先,可获取文件删除结构数据,然后将文件删除结构数据中的第二预设字段设置为预设值,最后将预设值赋值至第一预设字段。其中,第一预设字段可以为Irp.SystemBuffer。第二预设字段可以为FileInformation.DeleteFile。

例如:文件删除结构数据可以为FILE_DISPOSITION_INFORMATION结构,其中,该结构中的一个字段为FileInformation.DeleteFile,将该字段的值设置为1,表示目标文件为待删除状态。然后把文件删除结构数据FileInformation赋值给Irp.SystemBuffer。

S1053’、调用第一函数和第二函数设置IRP。

其中,第一函数可以为IoSetCompletionRoutine,第二函数可以为IoCallDriver。

具体地,可通过调用IoSetCompletionRoutine和IoCallDriver这两个函数对IRP进行设置。

S106’、下发IRP,并控制文件系统解析IRP,以及根据解析结果控制磁盘驱动删除目标文件。

在本发明的一个实施例中,可下发设置好的IRP,然后控制文件系统对该IRP进行解析,然后解析出目标文件的相关信息,从而控制磁盘驱动删除目标文件。最终,达到绕过与恶意程序挂钩的函数,删除目标文件的目的。

本发明实施例的电子设备,通过在内核层调用并执行预设函数,生成与目标文件对应的IRP,最终控制文件系统对IRP进行解析,从而根据解析结果控制磁盘驱动删除目标文件,绕过与恶意程序挂钩的函数对目标文件的防护,实现对顽固的恶意文件的清除,保证系统信息安全。

可以理解的是,该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

为实现上述目的,本发明还提出一种存储介质,其中,存储介质用于存储应用程序,应用程序用于在运行时执行本发明的一种文件删除方法。

为实现上述目的,本发明还提出一种应用程序,其中,应用程序用于在运行时执行本发明的一种文件删除方法。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1