2010-10-10 73 views
1

我想知道是否有辦法掛鉤Windows進程來檢查是否有任何可疑程序正在運行(Wireshark,Fiddler,OllyDBG等)。C#掛鉤Windows進程檢查調試進程

我想鉤住Windows進程,以便在它檢測到不需要的進程時實時關閉客戶端或彈出消息。

如果你們可以爲我提供任何鏈接,這樣做會很好。

謝謝!

+0

這不會阻止反彙編程序或人員將'ollydbg.exe'重命名爲別的東西。不要盲目地認爲這會防止反篡改(儘管它可能會讓某人耽擱一兩分鐘)。確保你有其他防禦措施。 – Zooba 2010-10-10 22:14:26

+0

我也檢查這些進程的窗口標題。 – xZerox 2010-10-10 22:27:52

+0

對於ollydbg,您可以想到幾乎任何用戶空間檢測方法都有反檢測插件。爲什麼wireshark,olly,......邪惡? – CodesInChaos 2010-10-14 13:39:56

回答

1
Process[] processlist = Process.GetProcesses(); 

然後根據需要選擇適合您的應用的列表,然後根據需要選擇不希望運行的應用。

+0

我想鉤住窗口進程,有點像掛鉤鍵盤有一個實時「鍵記錄器」。 – xZerox 2010-10-10 22:29:17

+0

@AaronMcIver嘿亞倫謝謝你的回答。你會知道通用破解軟件使用的進程的名稱嗎? – BKSpurgeon 2016-03-11 00:40:26

0

EnumWindows枚舉所有頂級窗口。

而你不想注入一個C#DLL到其他進程。這需要將.net運行時加載到該進程中。這浪費了RAM,並且如果該進程是使用不同版本.net的.net應用程序,則存在版本控制問題。特別是如果你的DLL注入之前,加載它自己的.net版本。

你想通過注入那個過程來實現你無法從外部獲得什麼?

0

您可能想要查看CodePlex上的EasyHook(http://easyhook.codeplex.com)。 Here是一些討論,據報道人們已經能夠掛鉤到CreateProcess。如果您設法在創建時將該創建的過程掛接到該API函數中。