卸載程式,結果沒卸載乾淨---程式的安裝目錄中還剩下一個dll檔案。想刪,結果系統提示說dll檔案被某個進程佔用了,不讓刪。
先前碰到這種做法,我都是直接使用unlocker先unlock一下,然後刪的。不過公司的電腦,不讓隨便安裝軟體,於是只能想其他辦法了。
在網上找了半天,終於給找到查看dll被某個進程調用的方法了。
在命令列下使用 tasklist /m dll檔案名稱 就能尋找了。原來tasklist還有這作用啊。於是又去翻tasklist的使用說明。以下就是找到的應用舉例,具體的tasklist參數和含義,直接使用tasklist /?看就行了。
------------------------------------------------------------------------------華麗的分割線------------------------------------------------------------------------------------------------------------
應用執行個體
1.查看本機進程
在"命令提示字元"中輸入Tasklist命令即可顯示原生所有進程(圖1)。原生顯示結果由5部分組成:映像名(進程名)、PID、會話名、會話#和記憶體使用量。
2.查看遠程系統的進程
在命令提示字元下輸入"Tasklist /s 218.22.123.26 /u jtdd /p 12345678"(不包括引號)即可查看到IP地址為218.22.123.26的遠程系統的進程。其中/s參數後的"218.22.123.26"指要查看的遠程系統的IP地址,/u後的"jtdd"指Tasklist命令使用的使用者帳號,它必須是遠程系統上的一個合法帳號,/p後的"12345678"指jtdd帳號的密碼。
注意:使用Tasklist命令查看遠程系統的進程時,需要遠程機器的RPC服務的支援,否則,該命令不能正常使用。
3.查看系統進程提供的服務
Tasklist命令不但可以查看系統進程,而且還可以查看每個進程提供的服務。如查看本機進程SVCHOST.EXE提供的服務,在命令提示字元下輸入"Tasklist /svc"命令即可(圖3)。你會驚奇地發現,有4個SVCHOST.EXE進程,而總共有二十幾項服務使用這個進程。
對於遠程系統來說,查看系統服務也很簡單,使用"Tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc"命令,就可以查看IP地址為218.22.123.26的遠程系統進程所提供的服務。
4.查看調用DLL模組檔案的進程列表
要查看本地系統中哪些進程調用了shell32.dll模組檔案,只需在命令提示字元下輸入"Tasklist /m shell32.dll"即可顯示這些進程的列表。
5.使用篩選器尋找指定的進程
在命令提示字元下輸入"TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running",就可以列出系統中正在啟動並執行非SYSTEM狀態的所有進程。其中"/FI"為篩選器參數,"ne"和"eq"為關係運算子"不相等"和"相等"。
綜合應用之結束進程
一、Tasklist
談到"Tasklist"命令,我們就不得不提到它的孿生兄弟"Taskill"命令,顧名思義,它是用來關掉進程的。
要關掉原生notepad.exe進程,有兩種方法:
1、先使用Tasklist尋找它的PID,假設系統顯示本機notepad.exe(notepad.exe是個病毒性程式,很難刪除,一般在C:/windows/system32下)進程的PID值為1132,然後運行"Taskkill /pid 1132"命令即可。其中"/pid"參數後面是要終止進程的PID值。
2、直接運行"taskkill /IM notepad.exe"命令,其中"/IM"參數後面為進程的映像名。
二、NTSD
系統debug級的ntsd,很多進程Tasklist是殺不了的,但是用ntsd就可以,基本上除了WINDOWS系統自己的管理進程,ntsd都可以殺掉,不過有些rootkit層級的超級木馬就無能為力了,不過幸好這類木馬還是很少的。
1、利用進程的PID結束進程
命令格式:ntsd -c q -p pid
命令範例: ntsd -c q -p 1332 (結束explorer.exe進程)
2、利用進程名結束進程
命令格式:ntsd -c q -pn ***.exe (***.exe 為進程名,exe不能省)