Локальный монитор безопасности

Тема в разделе "WASM.WIN32", создана пользователем DOZER, 10 окт 2005.

  1. DOZER

    DOZER New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2005
    Сообщения:
    26
    Добрый день Уважаемые!

    Вот выдалось мне писать локальный монитор безопасности(тема диплома:)) и появился у меня один вопросик. Мне нужно перехватывать своим монитором взаимодействие субъектов(процессов, потоков ...) с объектами(файлы, пайпы...). Если с перехватом объектов все ясно - обычный драйвер-фильтр яля filesys, то вот с перехватом субъектов(процессов, потоков..) не понятно. А именно: как можно перехватить создание/удаление процесса или потока. Причем не просто перехватить факт создания, но и иметь возможность отклонить создание процесса(т.е PsSetCreateProcessNotifyRoutine отпадает). Заранее спасибо.
     
  2. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    VOID(*PCREATE_PROCESS_NOTIFY_ROUTINE) (

    IN HANDLE ParentId,

    IN HANDLE ProcessId,

    IN BOOLEAN Create);



    А что тебе мешает убить процесс ? У тебя ж будет его ProcessId.



    [Add]



    http://www.ureader.com/message/312090.aspx

    Похожая проблема.
     
  3. DOZER

    DOZER New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2005
    Сообщения:
    26
    Допустим таким образом я смогу запрещать запуск процесса.

    Но как быть с завершением.



    За линк спасибо. Обязательно гляну.
     
  4. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    IN BOOLEAN Create - состояние процесса(запуск,завершение).

    Если я понял правильно понял "
    "
     
  5. DOZER

    DOZER New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2005
    Сообщения:
    26
    Я имел ввиду: если процесс завершается кем-то, я ловлю это завершение в своей callback функции. Как мне отменить завершение процесса. Не запускать же его заново.
     
  6. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    Перехват

    [NtOpenProcess OPTIONAL]

    NtTerminateProcess + NtTerminateThread.
     
  7. DOZER

    DOZER New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2005
    Сообщения:
    26
    То есть если я правильно понял мне надо помимо PsSetCreateProcessNotifyRoutine еще и перехватывать в SDT эти функции. Или перехвата только этих функций будет достаточно?
     
  8. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    мля, NtTerminateProcess + NtTerminateThread - для перехвата выгрузки процесса, а PsSetCreateProcessNotifyRoutine для уведомления о запуске.
     
  9. DOZER

    DOZER New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2005
    Сообщения:
    26
    Ясно. Спасибо за помощь.