一种保护软件的方法、装置和电子设备与流程

文档序号:11951575阅读:497来源:国知局
一种保护软件的方法、装置和电子设备与流程

本发明涉及系统安全技术领域,尤其涉及一种保护软件的方法、装置和电子设备。



背景技术:

随着互联网技术的不断发展,病毒木马等恶意程序层出不穷,例如,恶意程序销毁反病毒软件窗口的过程为:恶意程序调用FindWindow函数,进一步调用内核的NtUserFindWindowEx函数获取到窗口句柄,恶意程序以该窗口句柄为参数调用DestroyWindow函数,进一步调用内核的NtUserDestroyWindow把窗口销毁。因此,恶意程序可以通过查找反病毒软件活跃窗口,获取到窗口句柄,然后就可以对反病毒软件窗口进行销毁,这样反病毒软件窗口对应的进程就会结束,反病毒软件就无法正常保护系统安全。



技术实现要素:

本发明旨在至少解决上述技术问题之一。

为此,本发明实施例提供一种保护软件的方法、装置及电子设备,能够使反病毒软件窗口不能被恶意程序查找到,进而保护反病毒软件窗口不被销毁,对反病毒软件进行保护,增强反病毒软件的自身防御,有利于维护系统的安全。

第一方面,本发明实施例提供一种保护软件的方法,包括以下步骤:

当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄;

根据所述目标窗口的窗口句柄判断是否所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程;

如果所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则拒绝所述查找软件窗口的操作。

结合第一方面,在第一方面的第一种实施方式中,所述方法还包括:利用钩子函数挂钩用户查找窗口函数,捕捉查找软件窗口的操作。

结合第一方面,在第一方面的第二种实施方式中,所述根据所述目标窗口的窗口句柄判断是否所述目标窗口为预设目录下的窗口包括:

根据所述目标窗口的窗口句柄获取所述目标窗口所属的目标进程的进程标识,根据所述目标进程的进程标识获取目标进程的进程路径;

判断所述目标进程的进程路径是否属于预设目录,如果所述目标进程的进程路径属于预设目录,则确定所述目标窗口为预设目录下的窗口。

结合第一方面,在第一方面的第三种实施方式中,判断是否当前进行查找软件窗口的操作的进程属于恶意程序进程包括:

获取当前进行查找软件窗口的操作的当前进程的进程标识,根据当前进程的进程标识获取当前进程的进程路径;

根据当前进程的进程路径判断当前进程是否属于恶意程序进程,如果当前进程属于恶意程序进程,则确定当前进行查找软件窗口的操作的进程属于恶意程序进程。

结合第一方面,在第一方面的第四种实施方式中,所述拒绝所述查找软件窗口的操作具体为:向当前进行查找软件窗口的操作的进程返回无效窗口句柄。

结合第一方面,在第一方面的第五种实施方式中,所述方法还包括:如果所述目标窗口不为预设目录下的窗口或者当前进行查找软件窗口的操作的进程不属于恶意程序进程,则向当前进行查找软件窗口的操作的进程返回所述目标窗口的窗口句柄。

第二方面,本发明实施例提供一种保护软件的装置,包括:获取模块、判断模块和拒绝模块;

所述获取模块,用于当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄;

所述判断模块,用于根据所述获取模块获取到的所述目标窗口的窗口句柄判断是否所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程;

所述拒绝模块,用于如果所述判断模块判断出所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则拒绝所述查找软件窗口的操作。

结合第二方面,在第二方面的第一种实施方式中,所述装置还包括:挂钩模块,用于利用钩子函数挂钩用户查找窗口函数,捕捉查找软件窗口的操作。

结合第二方面,在第二方面的第二种实施方式中,所述判断模块包括:第一获取单元和第一判断单元;

所述第一获取单元,用于根据所述获取模块获取到的所述目标窗口的窗口句柄获取所述目标窗口所属的目标进程的进程标识,根据所述目标进程的进程标识获取目标进程的进程路径;

所述第一判断单元,用于判断所述第一获取单元获取到的所述目标进程的进程路径是否属于预设目录,如果所述目标进程的进程路径属于预设目录,则确定所述目标窗口为预设目录下的窗口。

结合第二方面,在第二方面的第三种实施方式中,所述判断模块包括:第二获取单元和第二判断单元;

所述第二获取单元,用于获取当前进行查找软件窗口的操作的当前进程的进程标识,根据当前进程的进程标识获取当前进程的进程路径;

所述第二判断单元,用于根据所述第二获取单元获取到的当前进程的进程路径判断当前进程是否属于恶意程序进程,如果当前进程属于恶意程序进程,则确定当前进行查找软件窗口的操作的进程属于恶意程序进程。

结合第二方面,在第二方面的第四种实施方式中,所述拒绝模块,具体用于如果所述判断模块判断出所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则向当前进行查找软件窗口的操作的进程返回无效窗口句柄。

结合第二方面,在第二方面的第五种实施方式中,所述装置还包括:返回模块,用于如果所述判断模块判断出所述目标窗口不为预设目录下的窗口或者当前进行查找软件窗口的操作的进程不属于恶意程序进程,则向当前进行查找软件窗口的操作的进程返回所述目标窗口的窗口句柄。

第三方面,本发明实施例提供一种保护软件的电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码并执行如下操作:

当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄;

根据所述目标窗口的窗口句柄判断是否所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程;

如果所述目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则拒绝所述查找软件窗口的操作。

本发明实施例的保护软件的方法、装置和电子设备,能够在恶意程序查找反病毒软件窗口时进行拦截,使反病毒软件窗口不能被恶意程序查找到,进而保护反病毒软件窗口不被销毁,对反病毒软件进行保护,增强反病毒软件的自身防御,有利于维护系统的安全。

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

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为根据本发明的实施例一的保护软件的方法流程图;

图2为根据本发明的实施例二的保护软件的方法流程图;

图3为根据本发明的实施例三的保护软件的装置结构示意图;

图4为根据本发明的实施例三的另一种保护软件的装置结构示意图;

图5为根据本发明的实施例三的又一种保护软件的装置结构示意图;

图6为根据本发明的实施例三的再一种保护软件的装置结构示意图;

图7为根据本发明的实施例三的再一种保护软件的装置结构示意图;

图8为本发明电子设备一个实施例的结构示意图。

具体实施方式

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

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

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按照基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

实施例一

图1是本发明的实施例一的保护软件的方法的流程图,如图1所示,本实施例的方法可以包括:

步骤101,当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄;

步骤102,根据目标窗口的窗口句柄判断是否目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程;

步骤103,如果目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则拒绝查找软件窗口的操作。

本发明实施例的保护软件的方法,能够在恶意程序查找反病毒软件窗口时进行拦截,使反病毒软件窗口不能被恶意程序查找到,进而保护反病毒软件窗口不被销毁,对反病毒软件进行保护,增强反病毒软件的自身防御,有利于维护系统的安全。

实施例二

图2是本发明的实施例二的保护软件的方法的流程图,如图2所示,本实施例的方法可以包括:

步骤201,利用钩子函数挂钩用户查找窗口函数,捕捉查找软件窗口的操作。

本实施例中,用户查找窗口函数为NtUserFindWindowEx内核函数;

本实施例中,利用钩子函数挂钩用户查找窗口函数可以为:在SSDT(System Services Descriptor Table,系统服务描述符表)中,查找到NtUserFindWindowEx内核函数的函数地址,使用钩子函数的函数地址替换SSDT中的NtUserFindWindowEx内核函数的函数地址,从而实现了利用钩子函数挂钩NtUserFindWindowEx内核函数,使得任意进程查找软件窗口的操作都会进入钩子函数,可以在此钩子函数中实现保护软件的方法,达到保护软件窗口不被销毁的目的。

步骤202,当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄。

本实施例中,当拦截到查找软件窗口的操作时,以传入的窗口标题或者窗口类名为参数调用NtUserFindWindowEx用户查找窗口函数查找对应的目标窗口的窗口句柄。

步骤203,根据目标窗口的窗口句柄获取目标窗口所属的目标进程的进程标识,根据目标进程的进程标识获取目标进程的进程路径。

本实施例中,以目标窗口的窗口句柄为参数调用查询窗口函数ZwUserQueryWindow函数获取目标进程的进程标识(Process Identification,PID);以目标进程的进程标识为参数调用查询信息函数ZwQueryInformationProcess函数获取目标进程的进程路径。

例如,获取到的目标进程的进程路径为C:\Program Files(x86)\kingsoft\kingsoft antivirus\kxetray.exe。

步骤204,判断目标进程的进程路径是否属于预设目录,如果是则执行步骤205,否则执行步骤208。

本实施例中,判断目标进程的进程路径与预设目录是否匹配,如果是则确定目标进程的进程路径属于预设目录,否则确定目标进程的进程路径不属于预设目录。

例如,预设目录为C:\Program Files(x86)\kingsoft\kingsoft antivirus\,目标进程的进程路径为C:\Program Files(x86)\kingsoft\kingsoft antivirus\kxetray.exe,则目标进程的进程路径与预设目录匹配,确定目标进程的进程路径属于预设目录。

步骤205,获取当前进行查找软件窗口的操作的当前进程的进程标识,根据当前进程的进程标识获取当前进程的进程路径。

本实施例中,通过调用获取当前进程标识函数PsGetCurrentProcessId函数获取当前进行查找软件窗口的操作的当前进程的进程标识,以当前进程的进程标识为参数调用查询信息函数ZwQueryInformationProcess函数获取当前进程的进程路径。

步骤206,根据当前进程的进程路径判断当前进程是否属于恶意程序进程,如果是则执行步骤207,否则执行步骤208。

本实施例中,判断当前进程的进程路径中是否包含预设进程名,如果是则确定当前进程属于恶意程序进程,否则确定当前进程不属于恶意程序进程。

例如,预设进程名包括但不限于:ab2.exe,av2.exe,ac2.exe。

可以理解,根据目标窗口的窗口句柄判断是否目标窗口为预设目录下的窗口的步骤(步骤203和204)与判断是否当前进行查找软件窗口的操作的进程属于恶意程序进程的步骤(步骤205和206)可以交换顺序执行,即本实施例并不限定判断是否目标窗口为预设目录下的窗口的步骤与判断是否当前进行查找软件窗口的操作的进程属于恶意程序进程的步骤的执行顺序。

步骤207,拒绝查找软件窗口的操作。

本实施例中,拒绝查找软件窗口的操作可以为向当前进程返回无效窗口句柄。

例如,无效窗口句柄为预设值0。

除此之外,拒绝查找软件窗口的操作还可以为不向当前进程返回数据,向当前进程返回操作失败信息,向当前进程返回拒绝操作信息等。

步骤208,向当前进程返回目标窗口的窗口句柄。

本发明实施例的保护软件的方法,能够在恶意程序查找反病毒软件窗口时进行拦截,使反病毒软件窗口不能被恶意程序查找到,进而保护反病毒软件窗口不被销毁,对反病毒软件进行保护,增强反病毒软件的自身防御,有利于维护系统的安全。

实施例三

图3是本发明的实施例三的保护软件的装置的结构示意图,如图3所示,本实施例的装置包括:获取模块301、判断模块302和拒绝模块303;

获取模块301,用于当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄;

本实施例中,如图4所示,本实施例的另一种保护软件的装置还包括:挂钩模块304,用于利用钩子函数挂钩用户查找窗口函数,捕捉查找软件窗口的操作。

本实施例中,用户查找窗口函数为NtUserFindWindowEx内核函数;

本实施例中,挂钩模块304,具体用于在SSDT(System Services Descriptor Table,系统服务描述符表)中,查找到NtUserFindWindowEx内核函数的函数地址,使用钩子函数的函数地址替换SSDT中的NtUserFindWindowEx内核函数的函数地址,从而实现了利用钩子函数挂钩NtUserFindWindowEx内核函数。

本实施例中,当拦截到查找软件窗口的操作时,获取模块301具体用于以传入的窗口标题或者窗口类名为参数调用NtUserFindWindowEx用户查找窗口函数查找对应的目标窗口的窗口句柄。

判断模块302,用于根据获取模块301获取到的目标窗口的窗口句柄判断是否目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程;

本实施例中,如图5所示,本实施例的又一种保护软件的装置中判断模块302包括:第一获取单元3021和第一判断单元3022;

第一获取单元3021,用于根据获取模块301获取到的目标窗口的窗口句柄获取目标窗口所属的目标进程的进程标识,根据目标进程的进程标识获取目标进程的进程路径;

本实施例中,第一获取单元3021具体用于以目标窗口的窗口句柄为参数调用查询窗口函数ZwUserQueryWindow函数获取目标进程的进程标识(Process Identification,PID);以目标进程的进程标识为参数调用查询信息函数ZwQueryInformationProcess函数获取目标进程的进程路径。

第一判断单元3022,用于判断第一获取单元3021获取到的目标进程的进程路径是否属于预设目录,如果目标进程的进程路径属于预设目录,则确定目标窗口为预设目录下的窗口。

本实施例中,第一判断单元3022具体用于判断目标进程的进程路径与预设目录是否匹配,如果是则确定目标进程的进程路径属于预设目录,否则确定目标进程的进程路径不属于预设目录。

本实施例中,如图6所示,本实施例的再一种保护软件的装置中判断模块302包括:第二获取单元3023和第二判断单元3024;

第二获取单元3023,用于获取当前进行查找软件窗口的操作的当前进程的进程标识,根据当前进程的进程标识获取当前进程的进程路径;

本实施例中,第二获取单元3023具体用于通过调用获取当前进程标识函数PsGetCurrentProcessId函数获取当前进行查找软件窗口的操作的当前进程的进程标识,以当前进程的进程标识为参数调用查询信息函数ZwQueryInformationProcess函数获取当前进程的进程路径。

第二判断单元3024,用于根据第二获取单元3023获取到的当前进程的进程路径判断当前进程是否属于恶意程序进程,如果当前进程属于恶意程序进程,则确定当前进行查找软件窗口的操作的进程属于恶意程序进程。

本实施例中,第二判断单元3024具体用于判断当前进程的进程路径中是否包含预设进程名,如果是则确定当前进程属于恶意程序进程,否则确定当前进程不属于恶意程序进程。

拒绝模块303,用于如果判断模块302判断出目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则拒绝查找软件窗口的操作。

本实施例中,拒绝模块303,具体用于如果判断模块302判断出目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则向当前进行查找软件窗口的操作的进程返回无效窗口句柄。

除此之外,拒绝模块303还可以用于如果判断模块302判断出目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则不向当前进程返回数据,或者向当前进程返回操作失败信息,或者向当前进程返回拒绝操作信息等。

本实施例中,如图7所示,本实施例的再一种保护软件的装置还包括:返回模块305,用于如果判断模块302判断出目标窗口不为预设目录下的窗口或者当前进行查找软件窗口的操作的进程不属于恶意程序进程,则向当前进行查找软件窗口的操作的进程返回目标窗口的窗口句柄。

本发明实施例的保护软件的装置,能够在恶意程序查找反病毒软件窗口时进行拦截,使反病毒软件窗口不能被恶意程序查找到,进而保护反病毒软件窗口不被销毁,对反病毒软件进行保护,增强反病毒软件的自身防御,有利于维护系统的安全。

本发明实施例还提供一种保护软件的电子设备。

图8为本发明电子设备一个实施例的结构示意图,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,并执行如下操作:

当捕捉到查找软件窗口的操作时,调用用户查找窗口函数获取目标窗口的窗口句柄;

根据目标窗口的窗口句柄判断是否目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程;

如果目标窗口为预设目录下的窗口并且当前进行查找软件窗口的操作的进程属于恶意程序进程,则拒绝查找软件窗口的操作。

处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-2所示实施例的描述,在此不再赘述。

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

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

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

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

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

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

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本

发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

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

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

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