Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #48, НОЯБРЬ 2004 г.

Инструментарий хакера

Крис Касперски аkа мыщъх

Спецвыпуск: Хакер, номер #048, стр. 048-080-4


Коммерческие эмуляторы в большинстве своем используют механизмы динамической эмуляции, эмулируя только привилегированные команды. А все остальные выполняются на "живом" процессоре – в сумеречной зоне изолированного адресного пространства, окруженной частоколом виртуальных портов, что не только существенно увеличивает производительность, но и автоматически добавляет поддержку всех новомодных мультимедийных команд. Разумеется, при условии что их поддерживает твой физический процессор.

Между тем, в обработке исключительных ситуаций ("экскепшенами"), воздействиях команд на флаги, недопустимых способах адресации эмуляторы (даже динамические) зачастую ведут себя совсем не так, как настоящий процессор, и защитный код может выяснить это. Впрочем, если защищенная программа не будет работать под эмулятором, это сильно возмутит легальных пользователей.

Встроенный отладчик

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

Могущество эмулятора как раз и заключается в том, что он полностью контролирует выполняемый код и обычные антиотладочные приемы в его случае не срабатывают. Аппаратные ограничения эмулируемого процессора на сам эмулятор не распространяются. Количество "аппаратных" точек останова не обязано равняться четырем, как на x86. При необходимости эмулятор может поддерживать тысячу или даже миллион точек останова, причем условия их срабатывания могут быть сколь угодно извращенными.

Естественно, для этого эмулятор должен быть оснащен интегрированным отладчиком. Любой другой отладчик, запущенный под эмулятором, никаких дополнительных преимуществ не получает. Возможности имеющихся интегрированных отладчиков достаточно невелики и обеспечивают ничуть не лучшую функциональность, чем debug.com, а нередко существенно уступают ему. Поэтому к ним стоит прибегать лишь в крайних случаях, когда обыкновенные отладчики с защитой уже не справляются.

DOS-BOX

Бесплатный эмулятор, распространяющийся в исходных текстах. Эмулирует единственную операционную систему – MS DOS 5.0. Применяется в основном для запуска старых игр. Жесткие диски не эмулируются (эмуляция дискового ввода-вывода заканчивается на прерывании INT 21h), и SoftIce на нем не идет. Зато cup386 (распаковщик исполняемых файлов плюс отладчик) работает исправно. Имеется неплохой интегрированный отладчик, правда, для этого эмулятор должен быть перекомпилирован с отладочными ключами.

Назад на стр. 048-080-3  Содержание  Вперед на стр. 048-080-5