概念
進程樹是一種進程關係表示方法。由父進程和子進程兩部分組成。
簡介
一些程式進程運行後,會調用其他進程,這樣就組成了一個進程樹。
比如,在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的子進程。若一個進程不是任何其它進程的子進程,則稱之為根進程或進程家族的祖先。