Добрый день Уважаемые! Вот выдалось мне писать локальный монитор безопасности(тема диплома) и появился у меня один вопросик. Мне нужно перехватывать своим монитором взаимодействие субъектов(процессов, потоков ...) с объектами(файлы, пайпы...). Если с перехватом объектов все ясно - обычный драйвер-фильтр яля filesys, то вот с перехватом субъектов(процессов, потоков..) не понятно. А именно: как можно перехватить создание/удаление процесса или потока. Причем не просто перехватить факт создания, но и иметь возможность отклонить создание процесса(т.е PsSetCreateProcessNotifyRoutine отпадает). Заранее спасибо.
VOID(*PCREATE_PROCESS_NOTIFY_ROUTINE) ( IN HANDLE ParentId, IN HANDLE ProcessId, IN BOOLEAN Create); А что тебе мешает убить процесс ? У тебя ж будет его ProcessId. [Add] http://www.ureader.com/message/312090.aspx Похожая проблема.
Допустим таким образом я смогу запрещать запуск процесса. Но как быть с завершением. За линк спасибо. Обязательно гляну.
Я имел ввиду: если процесс завершается кем-то, я ловлю это завершение в своей callback функции. Как мне отменить завершение процесса. Не запускать же его заново.
То есть если я правильно понял мне надо помимо PsSetCreateProcessNotifyRoutine еще и перехватывать в SDT эти функции. Или перехвата только этих функций будет достаточно?
мля, NtTerminateProcess + NtTerminateThread - для перехвата выгрузки процесса, а PsSetCreateProcessNotifyRoutine для уведомления о запуске.