发表在 编程少年官方部落 10-10 19:58:45
一些程序进程运行后,会调用其他进程,这样就组成了一个进程树。比如,在Windows XP的“运行”对话框中输入“cmd”启动命令行控制台,然后在命令行中输入“notepad”启动记事本。现在,命令行控制台进程“cmd.exe”和记事本进程“notepad.exe”就组成了一个进程树,其中“notepad.exe”进程是由“cmd.exe”进程创建的,前者称为子进程,后者称为父进程。现在我们用组合键Ctrl+ Alt+ Del调出任务管理器,在“进程”页面中选择“cmd.exe”,右击鼠标并选择“结束进程树”命令(如图),这时你会发现记事本进程也被同时杀死了。如果在notepad.exe”进程上结束进程的话,“cmd.exe”进程则依旧运行。因此,结束进程树的特性就是在结束一个进程的同时结束由该进程直接或间接创建的子进程。
一些新型的木马服务端程序运行后,会同时生成两个进程,这两个进程互相监控并保护。对此类木马,就可以分别对两个木马进程尝试使用“结束进程树”命令,从而同时杀死两个木马进程,然后再删除木马服务端程序、清除注册表的启动数据,从而彻底清除木马。
进程树的概念基于图论中的有向树的概念。一个进程树由若干个系统进程和它们之间的关系构成。进程树中的每个进程是树的节点。如果进程A创建了进程B,就称A是B的父进程,B是A的子进程。若一个进程不是任何其它进程的子进程,则称之为根进程或进程家族的祖先。