Отслеживание и блокировка доступа к памяти процесса. Ring0

Тема в разделе "WASM.WIN32", создана пользователем SomeOne_TT_WORK, 5 ноя 2006.

  1. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Если использовать эмуляторы, то начнется очередная война антиотладочных трюков vs эмуляторы. Крестовые походы :))
    Имхо, нужна нормальная аппаратная поддержка (хотя бы breakpoint`ы на физические адреса). А интелы с амди почему-то не хотят ее добавлять. Говорят, что в древние времена были процессоры, на которых в принципе не могло существовать malware. Может быть и легенда, но красивая :))
     
  2. Dimson

    Dimson New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2005
    Сообщения:
    59
    Адрес:
    Russia
    SomeOne_TT_WORK
    Есть IceExt в котором реализована возможность установки breakpoint-а на диапазон адресов. Это сделано как раз при помощи замены обработчика #PF (int 0Eh). PTE нужных страниц при этом обнуляются. На васме есть и исходники, и сам плагин. Небольшая доработка исходников позволит достичь желаемого результата. Это как раз то самое о чем говорил _Serega_, который очень хорошо разбирается в страничной адресации.
    В данном случае, если обработчик #PF сочтет виртуальный адрес инструкции из которой идет обращение к защищаемому блоку валидным, то все ОК. В противном случае - сделать какую-нибудь гадость :)
    Очевидно, что такая защита не является панацеей, т.к. хук можно снять и поставить свой или восстановить исходный вектор. Так что надо подумать стоит-ли заморачиваться при всех очевидных минусах, включающих проблему совмесимости данного метода с будущими ОС и SP, а также неминуемые ограничения на защищаемый блок.