[英]c++ Inject dll to cmd.exe monitoring commands
我嘗試向 cmd.exe 注入一個 dll,它將掛鈎輸入命令並將它們保存到文件中。 我設法進行了注入並使用 WH_KEYBOARD 上的鈎子獲取了一些我想要的信息。
如何通過其他方式掛鈎 cmd.exe 進程的輸入而不是掛鈎鍵盤事件?
您可以查看cmd.exe
進行的 WinAPI 調用,並找到一個將命令字符串作為參數並將其掛鈎的調用,例如使用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 快速調用約定,它的第二個參數(緩沖區)由rdx
指向。 雖然它在形式上是一個輸出參數,但在調用該函數之前,它指向輸入命令的 CRLF 終止副本。
您可以掛鈎該調用或從那里回溯並找到更合適的掛鈎位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.