жестокая пенетрация hiew’ом

GPCH (ADMIN@DOTFIX.NET)

Спецвыпуск: Хакер, номер #066, стр. 066-072-1

ВЗЛОМ В ПОЛЕВЫХ УСЛОВИЯХ — ЭТО СТИЛЬНО!

КАК ЧАСТО ТЫ ПОПАДАЛ В СИТУАЦИИ, КОГДА ПОД РУКОЙ НЕТ НИЧЕГО, КРОМЕ HEX-РЕДАКТОРА/ДИЗАССЕМБЛЕРА HIEW, А НУЖНО ЗАСТАВИТЬ СОФТ РАБОТАТЬ ПО-ТВОЕМУ? С ТАКОЙ ЗАДАЧЕЙ ИНОГДА СТАЛКИВАЮТСЯ ГОРЕ-ПРОГРАММИСТЫ НА РАБОЧЕМ МЕСТЕ: К КОМПЬЮТЕРУ СТАВИТСЯ ЗАЩИТА-ПРИВЯЗКА, НО В ТОЖЕ ВРЕМЯ АРМ (АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО — НЕ ПУТАТЬ С ARM) НУЖНО СРОЧНО ПЕРЕНЕСТИ С ОДНОГО КОМПЬЮТЕРА НА ДРУГОЙ. КОНЕЧНО, МОЖНО ПРИГЛАСИТЬ АВТОРА АРМ’А И ПОПРОСИТЬ ЕГО ОБ УСЛУГАХ, НО ОБЫЧНО НА ЭТО БАНАЛЬНО НЕТ ВРЕМЕНИ И ЖЕЛАНИЯ

Все мы привыкли использовать довольно массивный комплект из различных программ для реверсинга: и отладчик SoftICE или OllyDbg, и дизассемблер IDA Pro, и файловый анализатор PEiD, и редактор PE Tools, и вообще целая гора специализированного и полезного для крэкинга софта. Однако стоит ли обзаводиться такой кучей инструментов? Для большинства несложных задач по взлому вполне хватит HEX-редактора и дизассемблера. Сейчас мы поговорим как раз о том, как исследовать софт только с помощью HIEW.

Этот дизассемблер был выбран неслучайно: всегда можнео без труда найти его в локалке любого крупного предприятия, а в его состав включен хороший HEX-редактор (вот и причина высокого спроса). Итак, ты сидишь на работе. Кроме компьютера и локалки, под руками ничего нет. Поставлена задача банально запустить неработающий софт на своем (или любом) компьютере. Посмотрим, как в этом замечательном дизасме проделываются разные повседневные реверсерские операции.

[главное для реверсера] — умение локализовать компилятор/упаковщик, чтобы знать, с чем имеешь дело и какой подход выбрать. Конечно, когда найдешь упаковщик, ты будешь обязан, как минимум, снять его, и тут без автораспаковщика точно не обойдешься. Правда, обычно в узкоспециализированном софте, который пишут по заказу для предприятий, не используются никакие упаковщики: клиент один-единственный, он всегда платит, поэтому программист делает защиту только чтобы потом ее никому не перепродали и чтобы его услуги были востребованы в будущем. Да, хорошая идея, но порой самому клиенту приходится апгрейдить компьютер — именно тут наступает время задуматься. Локализация компилятора будет не менее полезна, так как, к примеру, для Delphi и VB потребуются разные знания и подготовка :). Открывай программу в HIEW и смотри на гору ASCII-символов. Что тут понятно?

Дважды жмем <Enter> и смотрим на более понятный дизассемблированный код. Чтобы он стал еще понятнее, надавим <F8> и <F5> — HIEW перейдет на участок кода, прописанный в оригинальной точке входа. Внимательно взглянув на этот код, уже понимаешь, на чем он написан. К примеру, для Delphi-программ код будет выглядеть как на Листинге 1.

Листинг 1

.0046D380: 55 push ebp

.0046D381: 8BEC mov ebp,esp

.0046D383: 83C4F0 add esp,-010 ;"?"

.0046D386: B8A0D14600 mov eax,00046D1A0 -----? (1)

.0046D38B: E8DC94F9FF call .00040686C -----? (2)

.0046D390: A1E8F84600 mov eax,[0046F8E8]

.0046D395: 8B00 mov eax,[eax]

.0046D397: E8A4E6FCFF call .00043BA40 -----? (3)

Содержание  Вперед на стр. 066-072-2
ttfb: 2.8610229492188 ms