жестокая пенетрация 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) |