Re[3]: Как отследить запуск нового процесса?
От: Ihor Osovyak Украина  
Дата: 20.11.04 09:29
Оценка:
Здравствуйте, Valery Boronin, Вы писали:

VB>да, конечно, этот вариант с хуками мной уже рассматривался, более того, в принципе я уже нашел такое решение...

VB>но там есть свои подводные камушки, может быть даже не в случае ловли CreateProcess...
VB>еще нашел вариант с драйверами, можно найти ссылку на этом сайте
VB>http://rsdn.ru/qna/?baseserv/hookapi.xml
VB>так что похоже вопрос решен

Проходил мимо, случайно заметил.. Лучше позно, чем никогда.. Может кто поиском пользуется.

Для NT ряда — PsSetCreateProcessNotifyRoutine — можно поставить на уровне ядра...
Есть еще один, не совсем очевидный способ — драйвер-фильтр файловой системы и отслеживание IRP_MJ_CREATE с последующим анализом currentIrpStack->Parameters.Create.SecurityContext->DesiredAccess на предмет наличия флажка FILE_EXECUTE. Преимущество этого способа по сравнению с вариантом на основании PsSetCreateProcessNotifyRoutine — то, что мы получаем нотификацию "до того" и есть возможность отменить запуск процесса, а также то, что мы получаем нотификацию не только об "откритии" основного файла, а и нотификацию об отображении всех подгружаемых длл для соотв. процесса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.