Re: Запуск пользовательского процесса из kernel-mode
От: x64 Россия  
Дата: 04.11.10 18:09
Оценка: 2 (1)
M>Необходимо запустить пользовательский процесс из kernel-mode.

Вообще-то, это уже много раз обсуждалось. Думаю, ты плохо искал.

M>Может быть это возможно каким-либо более простым способом?


Боюсь, что нет. Создание процесса полностью из ядра — задача сложная. Поэтому лучше всего попробовать заставить какой-нибудь уже существующий процесс создать новый процесс. Ну а для этого способов не так уж и много — либо зашедулить APC, либо создать пользовательский поток. Вариант с APC требует грязной работы с недокументированными вещами. Создать пользовательский поток из ядра проще, но на Windows 7 есть определённые проблемы с этим. Есть ещё один вариант, вполне стабильный, однако требующий некоторых исследований и внимательности. Нужно экспериментально найти процесс (один из системных), который часто-часто вызывает какую-либо API (например, WaitForSingleObject() или Sleep() или ReadFile(), ну ты понел), похукать эту функцию из ядра (через IAT, например), в перехватчике выполнить CreateProcess(), ну и затем снять перехват. Звучит просто, но на деле будут грабли, внимательнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.