2016-06-23 4 views
1

Я пытаюсь вставить dll в cmd.exe, который будет подключать команды ввода и сохранять их в файл. Мне удалось сделать инъекцию и получить часть информации, которую я хочу, используя hook на WH_KEYBOARD.C++ Inject dll to cmd.exe команды мониторинга

Как я могу подключить входной процесс cmd.exe другим способом, а не подключить событие клавиатуры?

ответ

0

Вы можете просмотреть вызовы 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 введенной команды.

Вы можете либо перехватить этот звонок, либо отследить оттуда и найти более подходящее место для подключения.

Смежные вопросы