Давненько я ничего в блоге не писал. Оформлю это там, ждите. Кстати, никто не надумал ещё сделать offline-копию блога? А то смотрите, как бы не получилось как с блогом TarasCo. В идеале в .chm это всё скинуть бы, там хоть и немного пока, но всё же, несмотря на большой перерыв, останавливаться я пока не собираюсь.
GVL Оригинально.. По теме - чтобы блокировать запуск процесса необходимо контролировать некоторый код, который исполняется при запуске процесса(логично да ?). Вот каким образом вы будить это делать зависит от вас(ну или от кошелька).
Не угадал. Навскидку написал здесь. Если есть, что добавить, - пишите. А деньги тут как бы и не за что брать-то, всё ж в паблике давно, я лишь немного причесал и систематизировал это всё.
x64 Этот комент относился к сплоетам. У вас в блоге я их не вижу, там всё боянище. Выбор механизма зависит от целей применения. Например кривые проты выполняют захват кода таким образом, что статически нельзя определить что это перехват малвары или легального софта, в конце концов снимается одним нажатием кнопки и вся эта куча костылей отваливается. Если это будет применяться в руткитах, то вобще не юзабельные способы.
x64 Странно что не спорите.. признав что в руткитах применяется(должно применяться) всё лучшее. d2k9 Основной нюанс: Код (Text): READ [TargetPtr] cli WRITE [TargetPtr]
Ну что просили, то и накидал... А по сплайсу да, тема хорошая, годная, но актуальная ли при наличии PG?
В руткитах не всегда применимо то, что используется и работает в легальных продуктах. С этим я согласен, это очевидно как бы. По остальным пунктам с тобой спорить бессмысленно, и потому не интересно. Код (Text): READ [TargetPtr] cli WRITE [TargetPtr] Как насчёт EIP в середине инструкции?
x64 Решит только проблему подкачки. Если размер новой инструкции более размера предыдущей, тогда перечислять контексты всех потоков в системе.
x64 PageGuard насколько я знаю актуален для дров пытающихся теневую таблицу похукать и к сплайсингу он не должен иметь никакого отношения. Он мониторит только объекты ядра с заранее известным статическим содержимым: SST, IDT, GDT. Clerk Да, этот примитив работает на хрюше сп3 х86 (пример дрова для сплайсинга от мс-рема из 3 статьи про хуки), но уже на висте бсодит. Я начал рыть, вспомнив, что функции по прологу и эпилогу вроде как различаются. Вот создам-ка я тут темку для обсуждения, может направят меня на путь верный: http://wasm.ru/forum/viewtopic.php?id=36328
К сожалению, образ ядра в памяти тоже патчить нельзя. А образ ядра в памяти после загрузки не статичен? )
Да согласен задурили просто мне некоторые люди голову Сейчас хорошенько подумал и вспомнил про применение PG: * Таблица глобальных дескрипторов -GDT; * Таблица дескрипторов прерываний - IDT; * Стек ядра, выделенный не ядром, а кем-то еще; * Таблица дескрипторов системных сервисов - SSDT; * Образы следующих системных файлов: NTOSKRNL.EXE, NDIS.SYS, HAL.DLL; * Служебные MSR регистры STAR/LSTAR/CSTAR/SFMASK, отвечающие за syscall'ы; * [AMD x86-64 предоставляет возможность контроля за образом ядра без расчета CRC]. Вот задница-то моим хукам
Так модифицировать-то загрузчик придётся, а надо динамически и ближе всего так сказать к "легальному", а не руткиту.
Ага, оно самое, в закладке было Ещё Сейчас рассматриваю варианты обходя PatchGuard для нахождения наиболее приемлимого.
Ещё* тут Крис Касперски на русском механизм работы объясняет понятно - http://www.insidepro.com/kk/163/163r.shtml