Техника снятия дампа с защищенных приложений


             

Простые случаи дампинга - часть 3


Для отладчика OllyDbg существует плагин OllyDump (http://dd.x-eye.net/file/ollydump300110.zip), со встроенным реконструктором таблицы импорта (см. рис. 3).

Рисунок 3 снятие дампа в OllyDbg с помощью плагина OllyDump

Наконец, можно воспользоваться и автономным дампером. Самым первым (и самым неумелым) был ProcDump, затем появился Lord PE, учитывающий горький опыт своего предшественника и способный сохранять дамп даже в тех случаях, когда PE-заголовок умышленно искажен защитной, а доступ к некоторым страницам памяти отсутствует (атрибут PAGE_NOACCESS). Венцом эволюции стал PE-TOOLS (см. рис. 4), с которым мы и будем работать. Базовый комплект поставки можно найти практически на любом хакерском сервере, например, на WASM'е (http://www.wasm.ru/baixado.php?mode=tool&id=124) или на CrackLab'е (http://www.cracklab.ru/download.php?action=get&n=MTU1), а свежие обновления лежат на "родном" сайта проекта http://neox.iatp.by, кстати говоря, уже несколько раз поменявшим свой адрес (по непонятым причинам, базовый пакет на нем отсутствует).

Рисунок 4 внешний вид утилиты PE-TOOLS

Если мы работаем с отладчиком прикладного уровня (типа OllyDbg) и стоим в OEP, то снять дамп с программы очень просто. Достаточно переключится на PE-TOOLS, выбрать нужный процесс в списке и сказать "dump full", однако, с отладчиками уровня ядра (soft-ice, Microsoft Kernel Debugger) этот номер не проходит и тут приходится хитрить. Запоминаем (в голове или на бумажке) первые два байта от начала OEP и записываем сюда EBFEh, что соответствует машинной инструкции JMP short $-2, зацикливающей процесс. Теперь можно смело выходить из отладчика, идти в PE-TOOLS, снимать дамп и восстанавливать оригинальные байты в любом hex-редакторе.

Обыкновенные упаковщики (типа UPX) не сопротивляются снятую дампа, поскольку борьба с хакерами в их задачу не входит. Иное дело — протекторы. Фактически, это те же самые упаковщики, но снабженные целым арсеналам противохакерских механизмов.Защитные методики можно разделить на активные и пассивные. К пассивным относится все те, что работают только на стадии распаковки и не вмешиваются ни в саму программу, ни в операционную систему. Активные — перехватывают API-функции внутри адресного пространства защищаемого процесса или даже устанавливают специальный драйвер, модифицирующий ядро операционной системы таким образом, что прямое снятие дампа становится невозможным. Очевидным побочным эффектом активных защит ставится их неуживчивость с новыми версиями Windows, зачастую приводящая к краху операционной системы. Печальнее всего то, что, запуская setup.exe, мы даже и не подозреваем какая там может гнездиться тварь, тем более, что далеко не все протекторы поддерживают корректурную деинсталляцию...




Содержание  Назад  Вперед