Детектинг завершения процессов

Тема в разделе "WASM.NT.KERNEL", создана пользователем WaterGhost, 22 сен 2007.

  1. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    z0mailbox
    не совсем понял ваш ответ, поясните пжлста.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Marik
    имеется ввиду запрещение завершения процесса через настройку политик.
     
  3. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    В лонгхорне уже сделали ProcessNotifyEx, там можно влиять на создание (т.е. вернуть ошибку к примеру и нифига не создасться)
     
  4. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    n0name
    Если вы подразумеваете ограничение прав пользователя, то не вариант, так как надо защищать и от пользователей с админовскими правами.
    tylerdurden
    Нужно универсальное средство под 2k/xp/2003

    Если хучить SDT единственный способ, то какой лучше способ использовать:
    1. замена адреса в самой SDT
    2. jmp в теле самой функции

    Ну и вообще мнение по поводу использования таких приемов в комерческих продуктах(не антивирус)
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Хучить сдт лучше по крайней мере потому, что приходится переписывать дворд, что можно сделать атомарной операцией, в отличие от записи 5 байт для сплайсинга
     
  6. Deyton

    Deyton Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    94
    отрицательное

    Marik
    Защита процесса от завершения - весьма не такая уж простая задача, существует множество способов убить процесс, и парой хуков зачастую тут не обойдешся. Кроме того, что делать, если приложение просто сглючит, и диспетчером его уже не прибить? Часто можно обойтись без хуков, - например, создать поток в другом процессе (системном), который будет следить за первым процессом, и если тот завершился - перезапускать его.

    Перехват лучше делать через SSDT и дело не в атомарности даже, а правильнее сказать, в безопасности. Менять то атомарно и 5 байт можно ( lock cmpxchg8b ), но у сплайсинга много других недостатков, например, вероятность креша системы, если какой-то поток прервался в месте патча, и версия Win не поддерживает hot-patch.
     
  7. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    Marik
    Админу тоже можно запретить PROCESS_TERMINATE
    вопрос в том - насколько надежно надо запретить? админу естесно лазейки найти полегче
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Да, я вообщемто имел в виду как раз то, что другой поток может выполнять инструкции на месте патча, просто написал не то че думал.
    Я пытался написать код, который перечислит EIP всех потоков и проверит, что действительно чтото не так. Только задолбался +)
    Вообщем-то, вероятность такого расклада невелика.
     
  9. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Понял
    Решил перехватывать только ZwOpenProcess, ZwTerminateProcess и ZwTerminateThread. Знаю что можно процесс взять под отладку и все такое.... но думаю этим ограничится пока.
    Каспер вроде как перехватывает такие инжекты и ругается что вирус.
    Спасибо всем ответившим!
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Marik
    если делать такое из r0, то кав не должен возмущаться.
     
  11. Deyton

    Deyton Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    94
    именно, Marik, у тебя ведь все равно драйвер есть...