1
我嘗試注入一個DLL到CMD.EXE,它將鉤住輸入命令並將它們保存到文件。 我設法做注射,並獲得我想要在WH_KEYBOARD上使用鉤子的一些信息。C++注入DLL到CMD.EXE監視命令
我怎樣才能鉤住cmd.exe進程的輸入通過其他方式,而不是鉤鍵盤事件?
我嘗試注入一個DLL到CMD.EXE,它將鉤住輸入命令並將它們保存到文件。 我設法做注射,並獲得我想要在WH_KEYBOARD上使用鉤子的一些信息。C++注入DLL到CMD.EXE監視命令
我怎樣才能鉤住cmd.exe進程的輸入通過其他方式,而不是鉤鍵盤事件?
您可以通過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終止副本。
您可以掛鉤該呼叫或從那裏追溯並找到更合適的掛鉤位置。