как перехватить API не нарушая работу антивирусов?

Тема в разделе "WASM.WIN32", создана пользователем RenderVision, 14 апр 2009.

  1. RenderVision

    RenderVision New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    14
    Собственно пишу приложение, необходимо перехватывать и обрабатывать CreateProcess (ну или NtCreateProcess или все остальные модификации) собственно интересует ваше мнение как сделать так чтобы не нарушить работу проактивной защиты, т.е. в SSDT сделать перехват не получится так как там уже хуки антивируса.... как бы это лучше всего реализовать?
    P.S. желательно чтобы метод работал и под x64 ну или под х64 предложите свой вариант...
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Всмысле в обход защиты в ядре или как ?
    Лучше всего зарегать обработчик исключений.
     
  3. RenderVision

    RenderVision New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    14
    всмысле мне просто нужно обрабатывать все запуски приложений на компьютере, мне нравится способ перехвата через SSDT но там уже стоит хук проактивки а в обход или нет не важно главное чтобы работало...
     
  4. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    цепляйся к серверу подсистемы в юзермоде.
    Ты под фразой "обрабатывать NtCreateProcess" имеешь ввиду только получать уведомления, или замораживать это дело до принятия решения что делать с этим новым процессом? Не забывай про "свободные потоки". Вообще все зависит от цели.
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    "Там" понятие расплывчатое, это на уровне инструкций всё. Поэтому нужно знать полностью что и где.
     
  6. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Так в чем конкретно проблема тогда? Читай из SSDT адрес перехваченной антивирусом функи, ставь свой хук, читай/обрабатывай что тебе нужно и отдавай дальше антивирусу...
    Или я чего-то не догнал?

    Clerk
    У тебя лучшей темы не бывает :) Семь бед - один ответ. ;)
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Aspire
    Понимаешь, там где жёсткий перехват не подходит единственный вариант остаётся - испортить ядерные структуры и обработать исключение. Благо пока есчо диспетчер можно зарегать в переменных..
     
  8. RenderVision

    RenderVision New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    14
    RET
    именно так...

    Aspire
    ну, а если антивирус попытается восстановить SSDT мой хук идет лесом...

    Clerk
    а есть пример как это реализуется? или тут вкратце напиши...
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Сложная муторная работа с TRAP_FRAME. Обработчик регистрируется как часть ядерного дебуггера в KiDebugRoutine.
     
  10. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Как правило, они их не снимают, даже при отключенном антивирусе его хуки остаются, только не обрабатываются. А снимаются только при удалении.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    http://virustech.org/f/viewtopic.php?id=90