本发明涉及进程处理领域,特别涉及一种隐藏程序进程的方法及装置。
背景技术:
通过“任务管理器”、“processexplorer”等工具可检测到系统中正在运行的所有的程序进程,程序进程会被相应的操作指令关闭掉。如果关闭了一些需要持续运行的特定的程序进程,会导致一些程序进程的相关功能失效;而一些特定的程序进程是不希望被关闭的。如何才能保护特定的程序进程不被关闭,就成为了业界亟待解决的问题。
技术实现要素:
本发明提供一种隐藏程序进程的方法及装置,用以保护特定的程序进程不被发现,从而保护特定的进程在系统中持续运行。
根据本发明实施例的第一方面,提供一种隐藏程序进程的方法,包括:
根据预设的被保护程序的信息,配置预设的注入程序;
当监测到进程查看程序启动时,将所述预设的注入程序钩取到所述进程查看程序;
执行所述预设的注入程序;
在所述预设的注入程序执行后,跳转至所述进程查看程序;
运行所述进程查看程序,输出所述进程查看程序的结果。
在一个实施例中,所述当监测到进程查看程序启动时,将所述预设的注入程序钩取到所述进程查看程序,包括:
实时监测所述进程查看程序是否启动;
当检测到所述进程查看程序启动时,保存所述进程查看程序的前五个字节的内容;
修改所述进程查看程序的前五个字节的内容为跳转指令;
根据所述跳转指令,跳转至所述预设的注入程序的起始地址。
在一个实施例中,所述执行所述预设的注入程序,包括:
查看预设的被保护程序是否已经启动;
在所述预设的被保护程序已经启动的情况下,将所述预设的被保护程序的信息从进程结构链中摘除。
在一个实施例中,所述在所述预设的注入程序执行后,跳转至所述进程查看程序,包括:
在所述预设的注入程序执行后,调取保存的所述进程查看程序的前五个字节的内容;
通过所述保存的所述进程查看程序的前五个字节的内容,恢复所述进程查看程序的前五个字节的内容。
在一个实施例中,所述运行所述进程查看程序,输出所述进程查看程序的结果,包括:
跳转至恢复后的所述进程查看程序的起始地址;
运行所述恢复后的所述进程查看程序;
输出所述进程查看程序的结果。
根据本发明实施例的第二方面,提供一种隐藏程序进程的装置,包括:
配置模块,用于根据预设的被保护程序的信息,配置预设的注入程序;
钩取模块,用于当监测到进程查看程序启动时,将所述预设的注入程序钩取到所述进程查看程序;
执行模块,用于执行所述预设的注入程序;
跳转模块,用于在所述预设的注入程序执行后,跳转至所述进程查看程序;
运行模块,用于运行所述进程查看程序,输出所述进程查看程序的结果。
在一个实施例中,所述钩取模块,包括:
检测子模块,用于实时监测所述进程查看程序是否启动;
保存子模块,用于当检测到所述进程查看程序启动时,保存所述进程查看程序的前五个字节的内容;
修改子模块,用于修改所述进程查看程序的前五个字节的内容为跳转指令;
第一跳转子模块,用于根据所述跳转指令,跳转至所述预设的注入程序的起始地址。
在一个实施例中,所述执行模块,包括:
参看子模块,用于查看预设的被保护程序是否已经启动;
摘除子模块,用于在所述预设的被保护程序已经启动的情况下,将所述预设的被保护程序的信息从进程结构链中摘除。
在一个实施例中,所述跳转模块,包括:
调取子模块,用于在所述预设的注入程序执行后,调取保存的所述进程查看程序的前五个字节的内容;
恢复子模块,用于通过所述保存的所述进程查看程序的前五个字节的内容,恢复所述进程查看程序的前五个字节的内容。
在一个实施例中,所述运行模块,包括:
第二跳转子模块,用于跳转至恢复后的所述进程查看程序的起始地址;
运行子模块,用于运行所述恢复后的所述进程查看程序;
输出子模块,用于输出所述进程查看程序的结果。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明一示例性实施例示出的一种隐藏程序进程的方法的流程图;
图2为本发明一示例性实施例示出的一种隐藏程序进程的方法的步骤s12的流程图;
图3为本发明一示例性实施例示出的一种隐藏程序进程的方法的步骤s13的流程图;
图4为本发明一示例性实施例示出的一种隐藏程序进程的方法的步骤s14的流程图;
图5为本发明一示例性实施例示出的一种隐藏程序进程的方法的步骤s15的流程图;
图6为本发明一示例性实施例示出的一种隐藏程序进程的装置的框图;
图7为本发明一示例性实施例示出的一种隐藏程序进程的装置的钩取模块62的框图;
图8为本发明一示例性实施例示出的一种隐藏程序进程的装置的执行模块63的框图;
图9为本发明一示例性实施例示出的一种隐藏程序进程的装置的跳转模块64的框图;
图10为本发明一示例性实施例示出的一种隐藏程序进程的装置的运行模块65的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的 优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是根据一示例性实施例示出的一种隐藏程序进程的方法流程图,如图1所示,该隐藏程序进程的方法,包括以下步骤s11-s15:
在步骤s11中,根据预设的被保护程序的信息,配置预设的注入程序;
在预设的注入程序中提前设置预设的被保护程序的信息,使用钩取函数的功能将预设的注入程序钩取到进程查看程序。
在步骤s12中,当监测到进程查看程序启动时,将所述预设的注入程序钩取到所述进程查看程序;
实时监测该进程查看程序是否启动,当检测到该进程查看程序启动时,保存该进程查看程序的前五个字节的内容,修改该进程查看程序的前五个字节的内容为跳转指令,跳转指令包括跳转关键字和跳转地址。根据该跳转指令,跳转至所述预设的注入程序的起始地址,以便在运行进程查看程序之前就运行预设的注入程序。
在步骤s13中,执行所述预设的注入程序;
查看预设的被保护程序是否已经启动。在该预设的被保护程序已经启动的情况下,将该预设的被保护程序的信息从进程结构链中摘除。
在步骤s14中,在所述预设的注入程序执行后,跳转至所述进程查看程序;
在该预设的注入程序执行后,调取保存的该进程查看程序的前五个字节的内容;通过保存的该进程查看程序的前五个字节的内容,恢复该进程查看程序的前五个字节的内容。
在该预设的注入程序执行后,调取保存的该进程查看程序的前五个字节的内容;通过该保存的所述进程查看程序的前五个字节的内容,恢复进程查看程序的前五个字节的内容,完整的运行进程查看程序。
在步骤s15中,运行所述进程查看程序,输出所述进程查看程序的结果。
跳转至恢复后的该进程查看程序的起始地址;运行该恢复后的所述进程查看程序;输出该进程查看程序的结果,因为已经在进程结构链摘除了预设的被 保护程序的信息,故进程查看程序的结果中并不包含预设的被保护程序的相关信息。通过上述操作即可达到隐藏特定的程序进程的目的,可以保护特定的程序进程不被任务管理器等工具检测出来,进而达到保护特定的任务进程的目的。
在一个实施例中,如图2所示,步骤s12包括如下步骤s21-s24:
在步骤s21中,实时监测所述进程查看程序是否启动;
进程是可以通过相关的api(applicationprogramminginterface,应用程序编程接口)来监测的,在windows系统里用的api有两个,一个api为createtoolhelp32snapshot(),另一个api为enumprocess()。createtoolhelp32snapshot()和enumprocess()共同都需要调用zwquerysysteminformation()函数。监测进程查看程序是否启动,就等价于监测zwquerysysteminformation()函数是否启动。zwquerysysteminformation()函数的作用在于获取所有系统中正在运行的所有进程的进程信息。
在步骤s22中,当检测到所述进程查看程序启动时,保存所述进程查看程序的前五个字节的内容;
当检测到进程查看程序启动时,保存该进程查看程序的可执行代码的前五个字节的内容。即,在该进程查看程序的运行之前,首先保存该进程查看程序的可执行代码在内存中的前五个字节的内容。
在步骤s23中,修改所述进程查看程序的前五个字节的内容为跳转指令;
修改该前五个字节的内容为跳转指令,该调准指令包括跳转关键字和调准地址,该跳转关键字占用一个字节的空间,该跳转地址占用四个字节的空间。
在步骤s24中,根据所述跳转指令,跳转至所述预设的注入程序的起始地址。
该跳转地址为预设的注入程序的起始地址到进程查看程序的起始地址之间的数值。不妨假设进程查看程序的起始地址为sysfunaddr,预设的注入程序的起始地址为userfunaddr,跳转地址为ndelta,且ndelta=userfunaddr– sysfunaddr。根据该跳转指令,跳转至预设的注入程序的起始地址,即系统当前即将执行的程序实际上就是预设的注入程序。
在一个实施例中,如图3所示,步骤s13包括如下步骤s31-s32:
在步骤s31中,查看预设的被保护程序是否已经启动;
通过运行预设的注入程序,可以查看系统中正在运行的程序进程有哪些。在该预设的注入程序中已经配置有被保护程序信息,故可以直接判断出被保护程序是否已经启动。
在步骤s32中,在所述预设的被保护程序已经启动的情况下,将所述预设的被保护程序的信息从进程结构链中摘除。
在判断出被保护程序已经启动的情况下,隐藏该被保护程序,使得该被保护程序无法被发现,即可保证被保护程序持续顺利运行。在进程结构链中摘除该被保护程序的信息,即可达到隐藏该被保护程序的目的。
在未判断出被保护程序已经启动的情况下,不对进程结构链进行任何处理。
在一个实施例中,如图4所示,步骤s14包括如下步骤s41-s42:
在步骤s41中,在所述预设的注入程序执行后,调取保存的所述进程查看程序的前五个字节的内容;
在注入程序执行后,调取出之前保存的进程查看程序的本来的前五个字节的内容,用来替换掉改写之后的进程查看程序的前五个字节的内容。
在步骤s42中,通过所述保存的所述进程查看程序的前五个字节的内容,恢复所述进程查看程序的前五个字节的内容。
在一个实施例中,如图5所示,步骤s15包括如下步骤s51-s53:
在步骤s51中,跳转至恢复后的所述进程查看程序的起始地址;
在恢复该进程查看程序本来的前五个字节的内容之后,跳转至恢复后的该进程查看程序的起始地址,以便系统继续运行该进程查看程序。
在步骤s52中,运行所述恢复后的所述进程查看程序;
恢复后的该进程查看程序即为被钩取前的进程查看程序。
在步骤s53中,输出所述进程查看程序的结果。
在进程结构链中摘除该被保护程序的信息之后,运行进程查看程序是无法得到进程查看程序的信息的,故输出进程查看程序的结果中也没有被保护程序的信息。
在一个实施例中,图6是根据一示例性实施例示出的一种隐藏程序进程的装置框图。如图6所示,该装置包括配置模块61、钩取模块62、执行模块63、跳转模块64和运行模块65。
该配置模块61,用于根据预设的被保护程序的信息,配置预设的注入程序;
该钩取模块62,用于当监测到进程查看程序启动时,将所述预设的注入程序钩取到所述进程查看程序;
该执行模块63,用于执行所述预设的注入程序;
该跳转模块64,用于在所述预设的注入程序执行后,跳转至所述进程查看程序;
该运行模块65,用于运行所述进程查看程序,输出所述进程查看程序的结果。
如图7所示,该钩取模块62包括检测子模块71、保存子模块72、修改子模块73和第一跳转子模块74。
该检测子模块71,用于实时监测所述进程查看程序是否启动;
该保存子模块72,用于当检测到所述进程查看程序启动时,保存所述进程查看程序的前五个字节的内容;
该修改子模块73,用于修改所述进程查看程序的前五个字节的内容为跳转指令;
该第一跳转子模块74,用于根据所述跳转指令,跳转至所述预设的注入程序的起始地址。
如图8所示,该执行模块63包括参看子模块81和摘除子模块82。
该参看子模块81,用于查看预设的被保护程序是否已经启动;
该摘除子模块82,用于在所述预设的被保护程序已经启动的情况下,将所述预设的被保护程序的信息从进程结构链中摘除。
如图9所示,该跳转模块64包括调取子模块91和恢复子模块92。
该调取子模块91,用于在所述预设的注入程序执行后,调取保存的所述进程查看程序的前五个字节的内容;
该恢复子模块92,用于通过所述保存的所述进程查看程序的前五个字节的内容,恢复所述进程查看程序的前五个字节的内容。
如图10所示,该运行模块65包括第二跳转子模块101、运行子模块102和输出子模块103。
该第二跳转子模块101,用于跳转至恢复后的所述进程查看程序的起始地址;
该运行子模块102,用于运行所述恢复后的所述进程查看程序;
该输出子模块103,用于输出所述进程查看程序的结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。