Вы находитесь на странице: 1из 6

Статья Обсуждение Читать Просмотр История Поиск

Руководство по hex-редакторам
Материал из Old-Games.RU Wiki

Главная страница Иногда возникает необходимость внести изменения в двоичный файл. Для этого используются так называемые hex-редакторы.
Свежие правки Цель данного руководства - описать основные методы работы с ними и ответить на наиболее часто задаваемые вопросы.
Новые страницы
Все страницы Содержание [убрать]
Случайная статья
1 Выбор редактора
Правила и указания
Справка
2 Простейшее редактирование
3 Поиск и замена
Обзоры переводов
4 Создание и использование crack-файлов
Пиратских
Официальных 5 Работа с блоками
Энтузиастов 6 Ассемблирование и ассемблерный поиск
Непроходимых 7 Дополнительные функции
Инструменты
Ссылки сюда
Связанные правки Выбор редактора
Спецстраницы
Самым первым обычно возникает вопрос: какой редактор из всего многообразия существующих выбрать. Для изменения
Версия для печати
нескольких байт можно cмело использовать любой, но при частом или длительном использовании программа должна
Постоянная ссылка
Сведения
поддерживать все требуемые функции, быть удобной, быстрой и надежной. Исходя из этого можно рекомендовать к
о странице использованию, например, QView. Кроме перечисленных выше cвойств, он обладает следующими:
Цитировать
страницу Работает в DOS и Windows
Содержит встроенные ассемблер и дизассемблер
Поддерживает кодировки текста DOS-866, Win-1251, KOI-8r и определяемые пользователем
Имеет широкие возможности настройки

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Является бесплатным с открытыми исходными кодами

Скачать его можно на домашней странице проекта:


http://www.agcproduct.com/rus/products/qview/.

Основное окно QView состоит из заголовка (вверху), рабочей


области и панели функциональных клавиш (внизу). Для
управления используются клавиатура и мышь. QView позволяет
работать с данными в текстовом режиме, режиме
шестнадцатеричного дампа и режиме дизассемблера. Режимы
последовательно переключаются нажатием Enter или F4 (или
щелчком левой кнопки мыши по заголовку в области
расположения символов AV/HV/00). Режимы просмотра и
редактирования переключаются нажатием Alt-F3 (в текстовом
режиме - просто F3). Устанавливаемые после запуска режимы
зависят от настроек, которые хранятся в файлах qview.ini,
qview.fmg, qview.ehl и для изменения которых в составе пакета
есть специальная программа - Q-Setup. Контекстная справка по
используемым клавишам вызывается нажатием F1.

Открыть файл в редакторе можно передав его имя в качестве


параметра командной строки: qview.exe <filename.ext> (в
Windows длинные имена файлов необходимо заключать в
двойные кавычки) либо через файловую панель, которая
вызывается нажатием Alt-F6 или щелчком мыши по имени файла в заголовке. Для выхода из редактора следует нажать Escape.

Простейшее редактирование
Самая простая задача при редактировании двоичных файлов: заменить значение байта по смещению XXXXХХХХ значением YY.
Для этого после открытия файла в редакторе необходимо нажатием Enter переключить вид в режим дампа. В рабочей области в
левой колонке указано значение смещения, в центральной части - значения байт в шестнадцатеричном виде, справа - те же
значения в виде символов ASCII.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Для установки курсора по требуемому смещению требуется нажать клавишу F5 (или щелкнуть в заголовке мышью по ряду цифр,
выделенному красным цветом), ввести значение смещения и нажать Enter. Если режим редактирования не был включен, то
следует нажать Alt-F3 (при этом в панели клавиш появится надпись "Edit ON"). После этого можно вносить изменения в файл,
набирая значения байт в шестнадцатеричном виде или, переместив курсор в правую колонку нажатием TAB, в виде символов.
Курсор позиционируется с помощью обычных клавиш управления или мышью.

Для отмены сделанных изменений cледует установить курсор в месте ошибки и несколько раз нажать F3. Сохранить изменения
можно при выходе, нажав W, или принудительно, нажав Alt-F9.

Поиск и замена
QView поддерживает поиск в файле определенных байт или
строк и поиск по маске. Диалоговое окно поиска вызывается
нажатием F7. В поле ASCII можно ввести строку в виде
символов, а в поле HEX - в шестнадцатеричном виде. Щелчком
мыши можно указать направление поиска ("Forward/Backward"),
включить опции различения регистра символов для
символьного поиска ("Sensitive") или поиск по маске ("Masking").
В последнем случае символ '?' маскирует соответствующий
байт в строке. Например, при поиске "w?r?" будут найдены
слова worm, warm, were и т.п. При нажатии Shift-F7 выполняется
поиск следующего совпадения.

Для выполнения поиска с заменой необходимо нажать Ctrl-F7. В верхней части окна вводится строка или шаблон для поиска, в
нижней - заменяющая строка.

Создание и использование crack-файлов


Crack-файлы являются самым распространенным способом записи изменений в двоичных файлах. В стандартном формате они
состоят из трех колонок: смещения относительно начала редактируемого файла, значения байта до изменения и его значения
после изменения:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
00000150: 89 B8
00000151: 1E 03
00000152: F6 00
00000153: 10 CD
00000154: 83 10

Иногда в начало добавляется комментарий, начинающийся с символа '#'.

В QView для сохранения внесенных в файл изменений в виде crack-файла необходимо нажать Shift-F9, ввести в открывшемся
окне имя файла и нажать Enter. Для внесения изменений из готового crack-файла cледует нажать Ctrl-F8, пропустить
открывшемся окно, нажав Enter (в нем можно задать дополнительное смещение, что используется редко), в следующем окне
ввести имя crack-файла и снова нажать Enter. Важное замечание: сразу после этого изменения будут записаны в файл и он
будет автоматически сохранен. Переключать программу в режим редактирования не обязательно. Если при внесении изменений
выводится сообщение об ошибке, значит, либо формат файла не соответствует стандартному, либо патч не подходит к файлу
(байты "до изменения" не совпадают).

Работа с блоками
Иногда возникает потребность сохранить часть двоичного
файла, например, скопировать из него текстовые строки. Для
работы с блоками редактор должен находиться в режиме дампа
или дизассемблера. Для выделения требуемого блока следует
установить курсор в его начало, нажать клавишу Insert, затем
установить курсор в конец блока и снова нажать Insert. При
этом блок выделяется желтым цветом.

Для сохранения блока в файл необходимо нажать Shift-F2, в


появившемся окне указать имя и формат сохраняемого файла
(в виде кода - "как есть", дампа или ассемблерного текста) и
нажать Enter.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
При вставке блока из файла следует аналогичным образом выделить блок, нажать Shift-F3 и в открывшемся окне указать имя
файла-источника. При этом размер выделенного блока должен быть равен или меньше размера файла. Альтернативный
вариант: установить курсор в позицию, начиная с которой должна быть произведена вставка, нажать Shift-F5 и в открывшемся
окне указать имя файла-источника, смещение и длину блока внутри него, откуда требуется взять данные.

Чтобы удалить блок следует отметить его и нажать Shift-F4 или установить курсор в нужную позицию, нажать Ctrl-F5 и указать
число удаляемых байт. Для вставки заполненного нулями блока в текущую позицию cледует нажать Ctrl-F4 и указать размер
блока. Удалить файла до конца начиная с текущей позиции можно нажав Alt-F10.

При вставке блока, как и в случае с crack-Файлами, изменения сохраняются cразу после внесения.

Ассемблирование и ассемблерный поиск


Ассемблирование используется для внесения изменений в
алгоритм работы исполнимых файлов. QView поддерживает все
команды процессоров Intel 486 и 487. В режиме ассемблера и
дизассемблера в рабочей области редактора в первой колонке
указано смещение относительно начала файла, во второй -
байты инструкции, в третьей - ee мнемоническое обозначение.
Для включения режима ассемблирования следует перевести
редактор в режим дизассемблера, нажав несколько раз Enter,
включить режим редактирования, нажав Alt-F3, и нажать TAB
для перемещения курсора в третью колонку. После этого можно
вводить инструкции, завершая ввод каждой нажатием Enter.

При необходимости можно, как и в режиме дампа, изменять непосредственно байты во второй колонке. Разрядность кода 16/32
переключается нажатием F2. Отменить изменения можно установив курсор на строку с ошибкой и несколько раз нажав F3.

Для поиска конкретных ассемблерных инструкций следует нажать F6, ввести инструкцию и нажать Enter. Поиск следующего
совпадения производится нажатием Shift-F6. Для поиска по шаблону можно использовать следующие специальные символы:

'?' - любой один символ


'*' - любая подстрока до запятой или до конца строки

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
'$' - поиск числовых констант (ставится перед числом)
'%' - пропуск одного слова
'@' - любая подстрока

Например, "sub bx,*" - поиск всех инструкций вычитания из регистра BX.

Дополнительные функции
Из полезных дополнительных функций QView можно отметить наличие встроенного калькулятора, который вызывается при
нажатии Ctrl-F6. Он поддерживает основные арифметические и логические поразрядные операции, скобки для указания
приоритета операций, ввод аргументов и вывод результата в системах счисления с основанием 2, 8, 10, 16.

Просмотреть информацию из заголовка исполнимого файла можно нажав F8 в режиме дампа или дизассемблера.
Поддерживаются файлы форматов MZ, PE, NE, LX, LE.

Категории: FAQ Мастерская

Последнее изменение этой страницы: 16:10, 28 июня 2011.

Описание Old-Games.RU Wiki Отказ от ответственности

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD