Вы можете просмотреть вызовы WinAPI. cmd.exe
делает и находит тот, который принимает командную строку в качестве аргумента и вызывает ее, например. с Microsoft Detours. Вы также можете подключить внутренние функции cmd.exe
, но это менее портативно.
Я загрузил cmd.exe
У меня на моей системе Windows (Windows 10 v1511 x86_64) в x64dbg и есть два вызова ReadConsoleW. Первый:
Address=00007FF6331A29CC
Disassembly=call qword ptr ds:[<&ReadConsoleW>]
Destination=cmd.&ReadConsoleW
Вызывается после обработки каждой команды, введенной через консоль.
Per x64 fastcall convention, его второй аргумент (буфер) обозначен rdx
. Хотя он формально является выходным параметром, перед вызовом функции он указывает на завершенную копию CRLF введенной команды.
Вы можете либо перехватить этот звонок, либо отследить оттуда и найти более подходящее место для подключения.