# wxHexEditor Tutorial ### **Что такое *wxHexEditor* и для чего нужен**? **wxHexEditor** — многофункциональный C++ / wxWidgets / GTK (wxgtk) шестнадцатеричный редактор больших файлов, процессов и устройств. Это приложение для редактирования данных представленных в "сыром виде", как последовательность байтов (так как его "видит" машина). Данные редактором отображаются в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двузначного числа. Выбор шестнадцатеричной системы счисления обусловлен тем, что в таком виде возможно отображение и редактирование таких данных как: * образ диска, * содержимое отдельного файла, * содержимое оперативной памяти, * содержимое виртуального адресного пространства процесса и т.д. Hex-редакторы обычно используются для редактирования не-текстовых данных(в данной статье возьмем в качестве примера именно текстовый документ для наглядности), когда специализированной программы для редактирования имеющихся данных либо нет, либо её применение неоправданно или нежелательно. :::info Например, данная программа окажется полезной при исправлении ошибок, взломе, читерстве, ручном твикинге, так как можно внести изменение непосредственно в код программы и изменить её поведение, если было проведено дизассемблирование целевой программы и известно смещение. ![](https://i.imgur.com/eOZ52qb.png) ::: *wxHexEditor* отличается от большинства подобных приложений высокой скоростью работы и возможностью быстрого перехода к нужному месту в файле, хотя и не копирует файл в оперативную память (потребление памяти небольшое при открытии файлов любого размера), поддерживается вставка или удаление нескольких байт без создания временного файла. ## Установка Установщика нет, программа распространяется в так называемом portable формате. Её не нужно устанавливать, можно сразу пользоваться из той директории, куда вы скачали файл. Достаточно просто скачать. ![](https://i.imgur.com/GkQJy6f.png) ### Интерфейс * Редактор отображает данные в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двузначного числа. Число строк зависит от количества байтов, которые требуется отобразить/отредактировать. * Слева от матрицы отображается линейка из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок. * Сверху от матрицы отображается другая линейка (на рисунке показана зелёным цветом) из чисел: над каждой колонкой отображается смещение байта, стоящего в этой колонке, относительно первого байта соответствующей строчки. Сумма числа, соответствующего i-той строке, и числа, соответствующего j-той колонке является адресом/смещением байта (i;j), стоящего на пересечении взятой строки и взятого столбца. * Справа от матрицы могут отображаться те же данные, но в другой интерпретации. Также имеются верхняя панель с инструментами и боковая с отображаемой на ней информацией о редактируемых данных. ![](https://i.imgur.com/BUzO6mj.png) ### Обзор основных возможностей программы Рассмотрим возможности редактора на примере текстового файла. Данный инструмент имеет базовые возможности для всех редакторов: создать новый файл, открыть файл, сохранить и т.д. Всё это можно найти во вкладке "Файл" или сразу на панели инструментов. ![](https://i.imgur.com/ZovemHt.png) ![](https://i.imgur.com/HgYjnl5.png) Также имеются возможности поиска, поиска с заменой, копирования, втсавки из буфера, удаления, перехода по смещению и т.д. Найти эти опции также можно во вкладке "Редактирование" или на уже показанной панели инструментов. ![](https://i.imgur.com/y7cXYd3.png) ### Пример поиска ![](https://i.imgur.com/w3b4NUc.png) ![](https://i.imgur.com/gShxDID.png) Аналогичен поиск с заменой ### Отображение информации о выделенном фрагменте ![](https://i.imgur.com/j5wlFiT.png) ### Продвинутый редактор Мы также можем настроить вид нашей программы для отображения необходимой нам информации ![](https://i.imgur.com/V7T5H98.png) В инструментах можем найти функцию сравнения файлов ![](https://i.imgur.com/NyN0B2e.png) Вспомним, что данный редактор всё же больше направлен на работу с образами дисков. Во вкладке "Устройства" можем выбрать и открыть необходимое нам дисковое устройство ![](https://i.imgur.com/bjBQBhQ.png) А также воспользоваться инструментами для работы с образами ![](https://i.imgur.com/8amDoxE.png) Ну и наконец, можнно выбрать режим просмотра файла ![](https://i.imgur.com/vBsTsmB.png) ### Заключение Если подходить к решению некоторых задач со знанием дела, то wxHexEditor может быть весьма полезным и удобным инструментом в ваших руках. # Доклад на тему "Форензика устройств Apple" [ссылка на доклад](https://hackmd.io/B3atk52tSS-_hlY3tGb-xw?view)