Собственно пишу приложение, необходимо перехватывать и обрабатывать CreateProcess (ну или NtCreateProcess или все остальные модификации) собственно интересует ваше мнение как сделать так чтобы не нарушить работу проактивной защиты, т.е. в SSDT сделать перехват не получится так как там уже хуки антивируса.... как бы это лучше всего реализовать? P.S. желательно чтобы метод работал и под x64 ну или под х64 предложите свой вариант...
всмысле мне просто нужно обрабатывать все запуски приложений на компьютере, мне нравится способ перехвата через SSDT но там уже стоит хук проактивки а в обход или нет не важно главное чтобы работало...
цепляйся к серверу подсистемы в юзермоде. Ты под фразой "обрабатывать NtCreateProcess" имеешь ввиду только получать уведомления, или замораживать это дело до принятия решения что делать с этим новым процессом? Не забывай про "свободные потоки". Вообще все зависит от цели.
Так в чем конкретно проблема тогда? Читай из SSDT адрес перехваченной антивирусом функи, ставь свой хук, читай/обрабатывай что тебе нужно и отдавай дальше антивирусу... Или я чего-то не догнал? Clerk У тебя лучшей темы не бывает Семь бед - один ответ.
Aspire Понимаешь, там где жёсткий перехват не подходит единственный вариант остаётся - испортить ядерные структуры и обработать исключение. Благо пока есчо диспетчер можно зарегать в переменных..
RET именно так... Aspire ну, а если антивирус попытается восстановить SSDT мой хук идет лесом... Clerk а есть пример как это реализуется? или тут вкратце напиши...
Сложная муторная работа с TRAP_FRAME. Обработчик регистрируется как часть ядерного дебуггера в KiDebugRoutine.
Как правило, они их не снимают, даже при отключенном антивирусе его хуки остаются, только не обрабатываются. А снимаются только при удалении.