1) Как из ring0 создать процесс, чтобы он работал в ring3? Вроде в ntdll есть RtlCreateUserProcess, но тут уже начинается следующий вопрос: 2) Вот есть у меня драйвер, вроде работает, но если я добавлю в него где-нибудь вызов того же самого RtlCreateUserProcess (Соответственно он добавится в таблицу импорта), а потом перекомпилирую и попытаюсь запустить он не запустится (NtStatus == C000007A - типа Не найдена указанная процедура). И что это значит и как с этим боротся, подскажите пожалуйста, может кто с этим уже сталкивался?
Такая тема на форуме уже была. Для запуска процесса существует 2 способа: 1) инжект кода запускающего процесс в другой процесс 2) создание процесса средствами Native API Я рекомендую второй способ. Пример можно найти в исходниках NT Rootkit (качать с rootkit.com). И еще: в драйверах НЕЛЬЗЯ вызывать функции из ntdll.dll. Это очень частая ошибка начинающих драйверописателей.