Okteta — hex-редактор из проекта KDE. Он открывает файл как последовательность байтов и позволяет править её напрямую: смотреть заголовки форматов, исправлять повреждённые поля, разбирать бинарные протоколы. В 2026 году актуальна ветка 0.26.x; приложение по-прежнему собрано на Qt 5 и KDE Frameworks 5, перенос на Qt 6 продолжается.

Разберём установку, интерфейс, поиск и правку, инструменты анализа, работу со структурами и меры предосторожности.

Установка

Okteta есть в репозиториях большинства дистрибутивов и в Flatpak. В KDE-системе он может быть уже установлен как часть приложений.

sudo apt install okteta
sudo dnf install okteta
sudo pacman -S okteta
flatpak install flathub org.kde.okteta

Проверьте версию в разделе «Справка → О программе». Если нужна свежая сборка, Flatpak обновляется независимо от дистрибутива, но требует настроенного Flatpak и доступа к Flathub.

Интерфейс и настройка вида

Файл показывается в виде колонок: смещение, шестнадцатеричные значения и символы. Режим Rows размещает символ под значением — так удобнее на узких экранах. В меню View настраиваются:

  • система счисления значений: hex, decimal, octal, binary;
  • кодировка символов, включая 8-битные наборы и EBCDIC;
  • число байтов в строке и размер группы;
  • динамическая раскладка под ширину окна.

Удачные настройки сохраняются как профиль просмотра. Профили полезны, когда вы регулярно смотрите заголовки сетевых пакетов или таблицы фиксированного размера.

okteta --version
okteta image.png
file image.png
xxd -l 64 image.png

Навигация, поиск и выделение

Ctrl+G переходит к смещению, Ctrl+F ищет последовательность. Искать можно в hex, десятичном, восьмеричном, двоичном виде или как текст. Направление и диапазон задаются в диалоге.

xxd -s 0x10 -l 32 firmware.bin
od -A x -t x1z firmware.bin | head
grep -abo $'\x89PNG' image.png
sha256sum firmware.bin

Выделение диапазона через Ctrl+E удобно для точного копирования. Закладки помогают помечать важные места, но в текущей ветке они не сохраняются между сеансами — записывайте смещения отдельно.

Режимы правки

В режиме вставки байты добавляются, в режиме перезаписи — заменяются. Перезапись строгая: изменить размер файла в ней нельзя. Для вставки шаблона есть отдельный диалог с выбором формата и количества повторов.

cp firmware.bin firmware.bin.bak
printf '\x00\x01\x02\x03' | dd of=firmware.bin bs=1 seek=16 conv=notrunc
cmp -l firmware.bin firmware.bin.bak | head
sha256sum firmware.bin firmware.bin.bak

Перед любой правкой сделайте копию и зафиксируйте контрольную сумму. После сохранения сравните файлы утилитой cmp: она покажет, какие байты изменились. Это дешевле, чем искать причину сломанного устройства.

Экспорт и буфер обмена

Okteta умеет экспортировать выделенные байты в разных форматах: hex-значения, текст, Base64, Base32, Ascii85, Intel HEX, S-Record и C-массив. Это удобно для вставки фрагмента в код или документацию.

  • C-массив — для прошивок и тестовых данных.
  • Intel HEX и S-Record — для обмена с инструментами микроконтроллеров.
  • Base64 — для передачи по текстовым каналам.

Помните, что обычное копирование кладёт в буфер сырые байты application/octet-stream, и большинство приложений их не покажет. Используйте «Копировать как» с нужным форматом.

Инструменты анализа

Встроенные панели закрывают значительную часть повседневных задач:

  • Checksum — модульная сумма, Adler-32, CRC-32 и хэши через QCA.
  • Statistics — распределение байтов, полезно для оценки энтропии и сжатия.
  • String Extract — вытаскивает печатные строки из бинарника.
  • Decoding Table — подсказывает типы для выбранного диапазона.
  • Charset Conversion — перекодирует 8-битные тексты.
strings -n 6 firmware.bin | head -30
binwalk firmware.bin
xxd firmware.bin | tail -20
md5sum firmware.bin

Инструменты не заменяют специализированные парсеры, но быстро отвечают на вопрос «что это за файл» и «нет ли здесь текста». Для архивов и вложенных образов удобнее binwalk.

Структуры: разбор формата

Инструмент Structures позволяет описать бинарный формат и наложить его на данные. Определения хранятся в отдельных файлах и подключаются через каталог структур. Это полезно для повторяющихся задач: заголовки PNG, ELF, собственных протоколов.

Начните с малого: опишите сигнатуру, версию, длину и смещение данных. Затем проверьте, совпадают ли значения с тем, что показывает xxd. Если структура «съезжает», почти всегда виноват порядок байтов или выравнивание.

readelf -h /bin/ls
xxd -l 64 /bin/ls
file /bin/ls
objdump -f /bin/ls | head

Для ELF поля e_ident, e_type и e_machine удобно сверять с выводом readelf. Так вы быстрее поймёте, правильно ли описали структуру.

Ограничения и безопасность

Okteta — редактор, а не средство анализа уязвимостей. Он не проверяет цифровые подписи, не умеет diff и не подходит для массовой обработки. Не редактируйте системные файлы и разделы диска без резервной копии: ошибка в одном байте может сделать носитель нечитаемым.

  • Работайте с копией, оригинал храните отдельно.
  • Проверяйте права: запись на блочное устройство требует sudo, на копию — нет.
  • Фиксируйте хэши до и после.
  • Не запускайте подозрительные бинарники после правки.
sudo dd if=/dev/sdb of=disk.img bs=4M status=progress
sha256sum disk.img
sudo mount -o ro,loop,offset=$((2048*512)) disk.img /mnt
sudo umount /mnt

Кому подходит Okteta

Редактор пригодится разработчику встраиваемого ПО, администратору и специалисту по восстановлению данных. Он быстро открывает файл, показывает байты и позволяет сделать точечную правку без написания скрипта.

  • Разбор заголовков PNG, JPEG, ELF и архивов.
  • Проверка сигнатур и контрольных сумм.
  • Правка небольших бинарных конфигов.
  • Подготовка тестовых данных для парсеров.

Для массовой обработки, сравнения версий и анализа больших образов лучше подходят специализированные утилиты и скрипты. Okteta — про ручную, внимательную работу с конкретным файлом. Если вы работаете с прошивками, держите рядом xxd и cmp: они дают воспроизводимый результат в терминале и удобны для отчёта. Графический редактор экономит время на навигации, а утилиты — на проверке.

Итог

Okteta остаётся удобным hex-редактором для Linux: понятный интерфейс, гибкий вид, поиск по разным системам счисления, экспорт в инженерные форматы и инструмент структур. Он не заменяет специализированные анализаторы, но отлично подходит для точечной правки и изучения форматов. Главное правило — копия, контрольная сумма и проверка результата.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте