В этой статье мы рассмотрим топ лучших шестнадцатеричных редакторов для Linux. Но прежде чем мы начнем, давайте посмотрим на то, что на самом деле является hex-редактором.
![Hex-editor Hex-editor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/0.jpg)
Про Linux за 5 минут
Что такое Hex-редактор
Hex-редактор, или проще говоря, шестнадцатеричный редактор позволяет вам просматривать и редактировать двоичные файлы. Разница между обычным текстовым редактором и шестнадцатеричным редактором заключается в том, что обычный редактор представляет логическое содержимое файла, тогда как шестнадцатеричный редактор представляет физическое содержимое файла.
Кто использует Hex-редакторы
Шестнадцатеричные редакторы используются для редактирования отдельных байтов данных и в основном используются программистами или системными администраторами. Некоторые из наиболее распространенных случаев - это отладка или обратная инженерия (reverse engineering) двоичных протоколов связи. Конечно, есть много других вещей, которые вы можете использовать в шестнадцатеричных редакторах - например, просмотр файлов с неизвестным форматом файла, выполнение шестнадцатеричного сравнения, просмотр дампа памяти программы и другое.
Большинство из упомянутых шестнадцатеричных редакторов доступны для установки из репозитория по умолчанию с помощью диспетчера пакетов вашего дистрибутива, например:
# yum install package [На CentOS] # dnf install package [На Fedora] # apt install package [На Debian/Ubuntu] # zypper install package [На OpenSuse] # pacman -Ss package [На Arch Linux]
Если пакет недоступен, перейдите на веб-сайт каждого инструмента, где вы сможете получить отдельный пакет для процедур загрузки и установки, а также подробную информацию о зависимостях.
Xxd Hex Editor
Большинство (если не все) дистрибутивов Linux поставляются с редактором, который позволяет выполнять шестнадцатеричные и двоичные манипуляции. Одним из таких инструментов является инструмент командной строки - xxd, наиболее часто используемый для создания шестнадцатеричного дампа данного файла или стандартного ввода. Он также может конвертировать шестнадцатеричный дамп обратно в исходную двоичную форму.
![Xxd Hex Editor Xxd Hex Editor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/1.jpg)
Hexedit Hex Editor
Hexedit - это еще один шестнадцатеричный редактор командной строки, который уже может быть предварительно установлен в вашей ОС. Hexedit показывает и шестнадцатеричное и ASCII представление файла одновременно.
![Hexedit Hexedit](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/2.jpg)
Hexyl Hex Editor
Другой полезный инструмент для проверки двоичного файла - это hexyl, простой просмотрщик шестнадцатеричных данных для терминала Linux, который использует цветной вывод для определения различных категорий байтов.
![Hexyl Hex Editor Hexyl Hex Editor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/3.png)
Его вид разделен на три колонки:
- Смещенный столбец, указывающий количество байтов в файле.
- Шестнадцатеричный столбец, который содержит шестнадцатеричное представление файла.
- Текстовое представление файла.
Установка этого шестнадцатеричного вьюера различна для разных операционных систем, поэтому рекомендуется проверить файл read-me в проекте, чтобы увидеть точные инструкции по установке для вашей ОС. Ссылка на GitHub.
Ghex - GNOME Hex Editor
Ghex - это графический шестнадцатеричный редактор, который позволяет пользователям редактировать двоичный файл как в шестнадцатеричном, так и в ASCII формате. Он имеет многоуровневый механизм отмены и повтора, который некоторые могут найти полезным. Еще одна полезная функция - функции поиска и замены, а также преобразование двоичных, восьмеричных, десятичных и шестнадцатеричных значений.
![Ghex Ghex](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/4.png)
Bless Hex Editor
Одним из наиболее продвинутых шестнадцатеричных редакторов в этой статье является Bless, похожий на Ghex, он имеет графический интерфейс, который позволяет редактировать большие файлы данных с многоуровневым механизмом отмены/повторения. Он также имеет настраиваемые представления данных, функцию поиска-замены и многопоточные операции поиска и сохранения. Несколько файлов могут быть открыты одновременно с помощью вкладок. Функциональность также может быть расширена с помощью плагинов. Ссылка на GitHub.
![Bless Hex Editor Bless Hex Editor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/5.png)
Okteta Editor
Okteta - еще один простой редактор для просмотра файлов необработанных данных. Некоторые из основных особенностей октета включают в себя:
- Различные представления символов - традиционные в столбцах или в строках со значением верха символа.
- Редактирование аналогично текстовому редактору.
- Различные профили для просмотра данных.
- Несколько открытых файлов.
- Удаленные файлы по FTP или HTTP.
Ссылка на сайт.
![Okteta Editor Okteta Editor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/6.png)
wxHexEditor
wxHexEditor - еще один из шестнадцатеричных редакторов Linux, обладающий некоторыми расширенными функциями.
whHexEditor предназначен в основном для больших файлов. Он работает быстрее с большими файлами, потому что он не пытается скопировать весь файл в вашу оперативную память. Он имеет низкое потребление памяти и может просматривать несколько файлов одновременно.
![wxHexEditor wxHexEditor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/7.png)
Hexcurse - Conx Hex Editor
Hexcurse - это шестнадцатеричный редактор на основе ncurses. Он может открывать, редактировать и сохранять файлы в дружественном терминальном интерфейсе, который позволяет перейти к определенной строке или выполнить поиск. Вы можете легко переключаться между шестнадцатеричными или десятичными адресами, или переключаться между шестнадцатеричными и ASCII-окнами.
Ссылка на GitHub.
![Hexcurse Hexcurse](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/8.png)
Hexer Binary Editor
Hexer - еще один бинарный редактор командной строки. Его отличительная особенность заключается в том, что это Vi-подобный редактор стилей для бинарных файлов. Некоторые из наиболее заметных особенностей - много буферов, многоуровневая отмена, редактирование командной строки с завершением и двоичное регулярное выражение.
Ссылка на GitHub.
![Hexer Binary Editor Hexer Binary Editor](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/9.jpg)
Emacs
Emacs является альтернативой текстовому редактору Vim и предоставляет функции редактирования в шестнадцатеричном формате. Простота и удобное переключение между режимами являются важнейшими особенностями Emacs
![Emacs Emacs](http://wiki.merionet.ru/images/luchshie-hex-redaktory-dlya-linux/10.png)
Заключение
Это был краткий обзор некоторых наиболее часто используемых шестнадцатеричных редакторов в Linux. Какие шестнадцатеричные редакторы вы используете и почему вы предпочитаете именно этот редактор? Что делает его лучше других?