Сейчас на форуме: tyns777, zds, JustLife (+3 невидимых)

 eXeL@B —› Программирование —› Блокирование запуска процессов в драйвере
Посл.ответ Сообщение

Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 26 декабря 2009 22:16
· Личное сообщение · #1

Юзаю документированый способ: PsSetCreateProcessNotifyRoutine(). В колбеке по PID открываю процесс через ZwOpenProcess, потом убиваю его через ZwTerminateProcess, хэндл на процесс закрываю.

Процессы вроде как убиваются, но если глянуть на список процессов через:
!process 0 0
То убитые процессы видны, как будто EPROCESS не удалился. Получается эдакий object leak.

Почему они там висят, и как правильно блокировать запуск, чтобы процессы убивались нормально?

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 26 декабря 2009 23:24 · Поправил: Vol4ok
· Личное сообщение · #2

Hexxx пишет:
Почему они там вися

Дело в том что калбэки вызываются гдето в середине PspCreateThread, поэтому вполне логично, что процесс может быть до конца не инициализирован

Скорее всего тут без хуков ядерных фукнций не обойтись...



Ранг: 61.4 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 26 декабря 2009 23:48
· Личное сообщение · #3

Задать собственный обраотчик ProcessObjectType.OpenProcedure().
Почти легальное решение
Стек вызова NtCreateProcess->NtCreateProcessEx->PspCreateProcess->ObInsertObject->ObpCreateHandle->ObpIncrementHandleCount->OpenProcedure()



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 27 декабря 2009 00:46
· Личное сообщение · #4

Это были глюки, вопрос отменяется. Щас уже все ок. Драйвер был не причем.

-----
Реверсивная инженерия - написание кода идентичного натуральному





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 27 декабря 2009 09:41
· Личное сообщение · #5

Видимо, тогда можно закрыть.


 eXeL@B —› Программирование —› Блокирование запуска процессов в драйвере
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати