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

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

GPCH (ADMIN@DOTFIX.NET)

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


Кстати, есть еще один хитрый метод легко отличить MS-компиляторы от Borland’овых по присутствию «Rich»-строки после DOS Header’а.

[лучшие помощники крэкера], стринг-референсы, представляют собой перечень всех строковых данных, которые встречаются в программе, и адресов, где происходит обращение к этим строкам. Они есть и в HIEW’е! В HEX-режиме ставишь курсор на начало любой строки и нажимаешь <F6> — сразу перейдешь на первое обращение к соответствующей строке! Поиск русских строк здесь тоже к твоим услугам. В общем, HIEW — настоящий рулез.

Жмем <F7> и пишем «Программа не зарегистрирована». <Enter>. Если нужно искать все места, где встречается строка, то <Shift> + <F7>, и HIEW найдет следующий адрес, где имеется строчка. Так каким образом он ищет русские строки, особенно если они могут быть и в DOS-, и в windows-кодировке? Ты сам даешь ему все нужные знания. Перед поиском необходимо нажать в текстовом режиме <F8> и выбрать кодировку. Именно с ее помощью HIEW и будет искать строку.

Порой, когда [всматриваешься в дизассемблерные листинги], так и хочется перейти по адресу, по которому указывает jmp, call или даже mov. HIEW и тут не подведет: каждому адресу на экране присваивается уникальное число, нажимаешь его на клавиатуре и переходишь куда надо. Вот пример:

Листинг (контекстно-зависимый)

.00417180: 60 pushad

.00417181: BE00E04000 mov esi,00040E000 -----? (1)

.00417186: 8DBE0030FFFF lea edi,[esi][-0000D000]

.0041718C: 57 push edi

.0041718D: 83CDFF or ebp,-001 ;"?"

.00417190: EB10 jmps .0004171A2 -----? (2)

(1) и (2) — те самые числа. Чтобы перейти по указанным адресам, просто набираешь их на клавиатуре (они могут быть выражены и буквами, если переходов больше девяти). Вообще цифровость задается в hiew7.ini, там тебе предоставляется воля вытворять что угодно, даже китайские иероглифы вписать.

Теперь остановимся на перемещениях по EXE вручную. По <F5> переходишь на указанный адрес. Притом, если просто ввести адрес, то переместишься по Offset’у. Если поставить точку перед адресом, HIEW перейдет по виртуальному адресу. Очень удобно. Даже в коде эти адреса можно переключать нажимая <Alt> + <F1>. Опять же не напрягаясь, ты переходишь к началу нужной секции: заходишь в PE-заголовок нажав <F8>,затем давишь <F6> и, выбрав нужную секцию из списка, оказываешься в ее начальном адресе. А что если захотелось перейти в начало таблицы импорта или TLS? Искать самому? Нет. <F8>, затем <F10> — и ты переносишься к таблице полей NTHeader’а. В нем просто выбираешь нужное поле и нажимаешь <Enter> — переместишься мгновенно :). Вот так старый добрый HIEW помогает в нашем нелегком деле.

[исследовать мало] — нужно править код, причем не все способны запомнить машинные коды и не все могут ориентироваться в составлении mod/rm-флагов (и кодировать регистры в уме). Править в HEX-редакторе — немного неудобный метод (хотя, я, например, написал весь движок DotFix FakeSigner’а чисто в HIEW и уже привык кодировать в уме :)). Конечно же, и тут HIEW не оставит тебя в беде, на помощь придет его мощный ассемблер! Чтобы править код, нажимаешь <F3>, затем дрожащим пальцем тыкаешь в <Tab>… О чудо! В появившейся текстовой строке можно писать команды прямо на ассемблере. Нажатие <Enter> позволяет еще и начать набор следующей команды.

Назад на стр. 066-072-2  Содержание  Вперед на стр. 066-072-4