我想知道是否有辦法掛鉤Windows進程來檢查是否有任何可疑程序正在運行(Wireshark,Fiddler,OllyDBG等)。C#掛鉤Windows進程檢查調試進程
我想鉤住Windows進程,以便在它檢測到不需要的進程時實時關閉客戶端或彈出消息。
如果你們可以爲我提供任何鏈接,這樣做會很好。
謝謝!
我想知道是否有辦法掛鉤Windows進程來檢查是否有任何可疑程序正在運行(Wireshark,Fiddler,OllyDBG等)。C#掛鉤Windows進程檢查調試進程
我想鉤住Windows進程,以便在它檢測到不需要的進程時實時關閉客戶端或彈出消息。
如果你們可以爲我提供任何鏈接,這樣做會很好。
謝謝!
Process[] processlist = Process.GetProcesses();
然後根據需要選擇適合您的應用的列表,然後根據需要選擇不希望運行的應用。
我想鉤住窗口進程,有點像掛鉤鍵盤有一個實時「鍵記錄器」。 – xZerox 2010-10-10 22:29:17
@AaronMcIver嘿亞倫謝謝你的回答。你會知道通用破解軟件使用的進程的名稱嗎? – BKSpurgeon 2016-03-11 00:40:26
EnumWindows枚舉所有頂級窗口。
而你不想注入一個C#DLL到其他進程。這需要將.net運行時加載到該進程中。這浪費了RAM,並且如果該進程是使用不同版本.net的.net應用程序,則存在版本控制問題。特別是如果你的DLL注入之前,加載它自己的.net版本。
你想通過注入那個過程來實現你無法從外部獲得什麼?
通過使用WMI創建事件Win32_Process
,可以檢測過程創建。每個進程都會創建一個Win32_Process
的實例,因此尋找新的實例會告訴您關於實時(接近)創建進程的信息。
要接收WMI創建事件,請參閱此頁:http://msdn.microsoft.com/en-us/library/system.management.eventquery.aspx(編輯:不同的鏈接,現在以C#示例)。
您可能想要查看CodePlex上的EasyHook(http://easyhook.codeplex.com)。 Here是一些討論,據報道人們已經能夠掛鉤到CreateProcess。如果您設法在創建時將該創建的過程掛接到該API函數中。
這不會阻止反彙編程序或人員將'ollydbg.exe'重命名爲別的東西。不要盲目地認爲這會防止反篡改(儘管它可能會讓某人耽擱一兩分鐘)。確保你有其他防禦措施。 – Zooba 2010-10-10 22:14:26
我也檢查這些進程的窗口標題。 – xZerox 2010-10-10 22:27:52
對於ollydbg,您可以想到幾乎任何用戶空間檢測方法都有反檢測插件。爲什麼wireshark,olly,......邪惡? – CodesInChaos 2010-10-14 13:39:56