利用Unix系統進程 揪出潛藏的木馬與病毒
一般來說,在操作系統中,進程是運行程序在計算機上的一次執行實例的活動。當我們運行一個程序實例,就啟動了一個進程。Unix操作系統給每一個進程分配惟一的進程識別號。每一個進程有相關的UID分配給那個用戶調用的所有進程。每一個進程有一個優先權,調度程序使用它來確定下一次運行的進程,這也就是我們所說的管理進程。進程又可分為系統進程和用戶進程。系統進程主要用于完成操作系統的功能,而應用程序的進程就是用戶進程了。
進程的重要性體現在可以通過觀察它來判斷系統中到底運行了哪些程序,從而在未能及時更新殺毒軟件或殺毒軟件失效的情況下,及時發現并手動清除病毒或木馬。
Unix下的進程查看
在Unix下可以監督系統上的用戶和進程,可以改變進程的優先權和停止進程。
首先,我們可以用“w”命令監督用戶和進程,顯示誰已注冊和他們在干什么。如圖1所示。
![]() |
圖1 |
其次,用“ps”命令顯示進程狀態的抽點打印。ps有許多選項,僅在這里列出一些,詳細資料請參閱相關資料。
a 列出和終端有關的所有進程。
X 列出所有進程,包括沒有連接到一個終端的進程,如后臺進程。
l或-l 長列表給出更多字段(替代的格式)
u 列出面向用戶的字段,例如user(名字)和STARTED(進程啟動時間)
-e 列出除核心進程外的所有進程(類似ax)
進程顯示中的某些字段說明如下:
COMMAND 執行的命令或程序
CP 短期CPU利用率
%CPU CPU利用的百分比
F 進程標志
%MEM 實存利用百分比
NI 進程調度增量;nice值
PID 進程識別號
PPID 父進程識別號
PRI 進程優先權
STAT 進程的狀態,由字符序列表示,如表1所示。
![]() |
表1 |
TIME 當前已使用的CPU時間
TT 控制TTY設備名
UID 進程所有者的用戶標識號
下面列出幾個實例,我們可以通過不同的命令查看到不同的內容。
示例1、列出和終端有關的所有進程,使用命令:
# ps a
顯示結果如圖2所示。
![]() |
圖2 |
示例2、列出和終端相關的所有進程,并列出面向用戶的字段,使用命令:
# ps au
顯示結果如圖3所示。
![]() |
圖3 |
示例3、查看和終端有關的所有進程的詳細信息,使用命令:
# ps la
顯示結果如圖4所示。
![]() |
圖4 |
示例4、查看和終端有關的所有進程的詳細信息,包括后臺進程,使用命令:
# ps lax
顯示結果如圖5所示。
![]() |
圖5 |
示例5、查看除核心進程以外的所有進程的詳細信息,使用命令:
# ps -le
顯示結果如圖6所示。
![]() |
圖6 |
示例6、查看除核心進程以外的所有進程,使用命令:
# ps -e
顯示結果如圖7所示。
![]() |
圖7 |
Unix下的進程滅殺
Unix的一個進程可以由它的所有者或超級用戶掛起或終止。
要掛起在korn或C Shell環境下前臺運行的所屬自己的進程時,請按Ctrl+Z。該進程可以使用fg在前臺繼續,或使用bg該進程在后臺繼續。
為了掛起自己的或其他的進程,可以發送STOP信號(17)。Kill(1)命令用于向一個進程發信號。如:#kill -signal pid。
要終止一個進程,用#kill -9 pid號即可,如“# kill -9 637”。如圖8所示。
![]() |
圖8 |
這樣就將Unix終端給KILLED。如圖9所示。
![]() |
圖9 |
編輯提示:作為網管,在初裝完操作系統之后,最好做好系統進程和用戶進程的“快照”備份,以便日后檢查維護,或者懷疑有病毒和木馬時對照檢查。尤其是對于安裝了新的應用軟件后的進程檢查。比如,新軟件運行時有沒有添加系統進程,添加的進程名是什么?如果添加了進程,我們由于沒有及時地查看并了解清楚,在出現問題查毒后,有可能會把這些進程錯認成病毒木馬給刪除了,會給今后日常維護、查毒帶來不必要的麻煩,甚至影響系統的運行。
【編輯推薦】