logo
PASOIB

6.3. Редактор кода hiew

HIEW – необыкновенно мощный инструмент, предназначенный для анализа и редактирования программ непосредственно в исполняемом коде. Большим достоинством данного продукта является то, что он совмещает в себе редактор кода и дизассемблер, что позволяет его очень эффективно использовать для анализа больших программ, занимающих по объему несколько мегабайт, его использование позволяет человеку, осуществляющему исследование ПО, зачастую, полностью отказаться от отладчиков и дизассемблеров.

Дизассемблер, встроенный в HIEW является интерактивным. Его мощь может быть сравнима только с IDA.

HIEW незаменим при анализе программ как в пару килобайт (когда расточительно запускать ради них IDA), так и в пару мегабайт (когда IDA дольше будет дизассемблировать, чем злоумышленник сносить защиту с помощью HIEW).

Если IDA можно сравнить с тяжелым стратегическим оружием типа артиллерии, то работа с HIEW больше напоминает работу разведчика.

Наиболее употребительный формат запуска HIEW следующий – HIEW.EXE имя-файла, после чего HIEW перейдет в режим просмотра – редактирования данного файла. Возможно три вида режимов исследования – текстовый, шестнадцатиричный, а также в виде мнемоник ассемблера (рис. 6.7.)

Рис. 6.7. Режимы исследования программы в HIEW

Первоначально исследователь находится в режиме просмотра программы. Для того, чтобы перейти в режим ее редактирования, необходимо воспользоваться функциональной клавишей F3 (EDIT). В данном режиме пользователь может исправить шестнадцатиричный код (в том числе, воспользоваться распространенной операцией xor), ввести инструкцию на языке ассемблера, ввести код для шифровки/дешифровки фрагмента и т.д. Запись исправлений осуществляется по команде UPDATE (F9).

По клавише F8 (HEADER) можно просмотреть заголовок исследуемого файла.

Команда REFER (F6) позволяет найти в коде программы ссылки на некоторый адрес, команда GOTO (F5) позволяет перейти непосредственно к указанному адресу.

Большим достоинством HIEW является наличие в нем так называемой крипт-системы. Она позволяет расшифровывать программу «на лету», не отрываясь от анализа.