# wxHexEditor Tutorial
### **Что такое *wxHexEditor* и для чего нужен**?
**wxHexEditor** — многофункциональный C++ / wxWidgets / GTK (wxgtk) шестнадцатеричный редактор больших файлов, процессов и устройств.
Это приложение для редактирования данных представленных в "сыром виде", как последовательность байтов (так как его "видит" машина). Данные редактором отображаются в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двузначного числа.
Выбор шестнадцатеричной системы счисления обусловлен тем, что в таком виде возможно отображение и редактирование таких данных как:
* образ диска,
* содержимое отдельного файла,
* содержимое оперативной памяти,
* содержимое виртуального адресного пространства процесса
и т.д.
Hex-редакторы обычно используются для редактирования не-текстовых данных(в данной статье возьмем в качестве примера именно текстовый документ для наглядности), когда специализированной программы для редактирования имеющихся данных либо нет, либо её применение неоправданно или нежелательно.
:::info
Например, данная программа окажется полезной при исправлении ошибок, взломе, читерстве, ручном твикинге, так как можно внести изменение непосредственно в код программы и изменить её поведение, если было проведено дизассемблирование целевой программы и известно смещение.

:::
*wxHexEditor* отличается от большинства подобных приложений высокой скоростью работы и возможностью быстрого перехода к нужному месту в файле, хотя и не копирует файл в оперативную память (потребление памяти небольшое при открытии файлов любого размера), поддерживается вставка или удаление нескольких байт без создания временного файла.
## Установка
Установщика нет, программа распространяется в так называемом portable формате. Её не нужно устанавливать, можно сразу пользоваться из той директории, куда вы скачали файл. Достаточно просто скачать.

### Интерфейс
* Редактор отображает данные в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двузначного числа. Число строк зависит от количества байтов, которые требуется отобразить/отредактировать.
* Слева от матрицы отображается линейка из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок.
* Сверху от матрицы отображается другая линейка (на рисунке показана зелёным цветом) из чисел: над каждой колонкой отображается смещение байта, стоящего в этой колонке, относительно первого байта соответствующей строчки. Сумма числа, соответствующего i-той строке, и числа, соответствующего j-той колонке является адресом/смещением байта (i;j), стоящего на пересечении взятой строки и взятого столбца.
* Справа от матрицы могут отображаться те же данные, но в другой интерпретации.
Также имеются верхняя панель с инструментами и боковая с отображаемой на ней информацией о редактируемых данных.

### Обзор основных возможностей программы
Рассмотрим возможности редактора на примере текстового файла.
Данный инструмент имеет базовые возможности для всех редакторов: создать новый файл, открыть файл, сохранить и т.д. Всё это можно найти во вкладке "Файл" или сразу на панели инструментов.


Также имеются возможности поиска, поиска с заменой, копирования, втсавки из буфера, удаления, перехода по смещению и т.д. Найти эти опции также можно во вкладке "Редактирование" или на уже показанной панели инструментов.

### Пример поиска


Аналогичен поиск с заменой
### Отображение информации о выделенном фрагменте

### Продвинутый редактор
Мы также можем настроить вид нашей программы для отображения необходимой нам информации

В инструментах можем найти функцию сравнения файлов

Вспомним, что данный редактор всё же больше направлен на работу с образами дисков. Во вкладке "Устройства" можем выбрать и открыть необходимое нам дисковое устройство

А также воспользоваться инструментами для работы с образами

Ну и наконец, можнно выбрать режим просмотра файла

### Заключение
Если подходить к решению некоторых задач со знанием дела, то wxHexEditor может быть весьма полезным и удобным инструментом в ваших руках.
# Доклад на тему "Форензика устройств Apple"
[ссылка на доклад](https://hackmd.io/B3atk52tSS-_hlY3tGb-xw?view)