[原]排错实战——使用process explorer替换任务管理器
前言
一般,我們會使用任務管理器查看系統中有哪些進程在運行,強制殺掉某個進程。可是系統自帶的任務管理器功能有限,process explorer是一個功能更強大的工具。它可以讓我們查看更多更詳細的信息( 比如查看某個進程的父進程,進程加載了哪些dll,打開了哪些文件,線程的cpu使用情況,線程的調用棧,哪些文件被哪些進程占用了,等等 …… )。有沒有辦法讓process explorer替換系統自帶的任務管理器呢?????
功能介紹
這個功能,process explorer的作者Mark Russinovich已經幫我們想到了。process explorer提供了一個很酷的功能——替換任務管理器(taskmgr.exe),這樣當我們運行任務管理器的時候,就會自動打開功能更強大的process explorer了。
replace task manager說明:此操作需要以管理員權限運行process explorer。
這么厲害的操作,是怎么實現的呢?????
實現原理
原來windows中有個注冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options。如果程序A在Image File Execution Options下有對應的注冊表項, 當我們啟動程序A的時候,系統會啟動Debugger子項中的值對應的程序,并把程序A的路徑當作參數傳遞過去。
以taskmgr.exe為例,設置如下圖:
當taskmgr.exe啟動的時候,系統檢測到taskmgr.exe在Image File Execution Options下有對應的設置項,系統會啟動Debugger子項中的值對應的程序C:\My\tools\sysinternals\procexp.exe,并把taskmgr.exe的路徑(我機器上是C:\WINDOWS\SYSTEM32\TASKMGR.EXE)當作參數傳遞給procexp.exe。
驗證
process explorer到底是不是通過這種方法實現的呢?讓我們用process monitor來觀察一下整個過程吧。具體步驟我就省略了,請參考下面的動圖。
replace taskmanager screen record注意: ?process monitor默認會過濾掉process explorer相關的事件,如果想看到相關事件,需要手動取消過濾。自己驗證的時候,一定不要忘了這一點。為了引起大家的重視,我特地把相關設置截圖貼到下方!
輕松一下
既然我們知道了原理,我們可以嘗試嘗試其它玩法。用notepad.exe替換taskmgr.exe怎么樣?當啟動taskmgr.exe的時候,啟動的將會是notepad.exe。何不用這項技術娛樂下周圍的同事?替換掉大家常用的vs(對應的進程名為devenv.exe),這樣當同事打開vs準備寫代碼的時候,會是什么表情呢?????
腳本
把下列代碼保存成taskmgr.reg,雙擊即可導入到注冊表。
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe]"Debugger"="\"C:\\My\\tools\\sysinternals\\procexp.exe\""注意: Debugger的值要替換成你自己機器上的路徑。
你知道嗎?
可以使用Ctrl + Alt + Esc或者Ctrl + Alt + Delete來打開任務管理器。你喜歡用哪種方式打開呢?還知道其它打開任務管理器的方法嗎?
總結
利用process monitor的Process Tree功能,可以方便的讓我們查找到指定的進程,并進行過濾。
Image File Execution Options注冊表項很好很強大。鏡像劫持。
process explorer和process monitor只是sysinternals工具集中的兩個常用的工具。心動了嗎?請認準官方下載地址:https://docs.microsoft.com/en-us/sysinternals/downloads/
參考資料
Image File Execution Options[1]
《Windows Sysinternals 實戰指南》
References
[1]? Image File Execution Options:
https://blogs.msdn.microsoft.com/junfeng/2004/04/28/image-file-execution-options/
歡迎留言交流
總結
以上是生活随笔為你收集整理的[原]排错实战——使用process explorer替换任务管理器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 祝贺王远当选为中国区第二位 Teams
- 下一篇: ABP vNext中使用开源日志面板 L