2016-06-23 98 views
1

我嘗試注入一個DLL到CMD.EXE,它將鉤住輸入命令並將它們保存到文件。 我設法做注射,並獲得我想要在WH_KEYBOARD上使用鉤子的一些信息。C++注入DLL到CMD.EXE監視命令

我怎樣才能鉤住cmd.exe進程的輸入通過其他方式,而不是鉤鍵盤事件?

回答

0

您可以通過WinAPI調用cmd.exe來查找以命令字符串作爲參數並將其掛住的命令。與Microsoft Detours。你也可以掛鉤cmd.exe的內部功能,但這不便攜。

我把我的Windows系統(Windows 10 v1511 x86_64)上的cmd.exe加載到x64dbg中,並且有兩個調用ReadConsoleW。第一個:

Address=00007FF6331A29CC 
Disassembly=call qword ptr ds:[<&ReadConsoleW>] 
Destination=cmd.&ReadConsoleW 

在處理通過控制檯輸入的每個命令後被調用。

x64 fastcall convention,它的第二個參數(緩衝區)由rdx指向。雖然它是正式的輸出參數,但在調用函數之前,它指向輸入命令的CRLF終止副本。

您可以掛鉤該呼叫或從那裏追溯並找到更合適的掛鉤位置。