Двоичные файлы содержат структурированные данные, хранящиеся в машиночитаемом формате. Они не читаются человеком. Большинство программных пакетов доступны в виде двоичных файлов, которые можно загрузить и использовать. Даже когда вы устанавливаете пакет на вашу систему Linux, менеджер пакетов в конечном итоге устанавливает двоичный файл программы вместе с несколькими вспомогательными файлами. Иногда вам может понадобиться изменить двоичный файл в Linux. Один из самых простых способов сделать это - отредактировать его шестнадцатеричный эквивалент. В этой статье мы узнаем, как редактировать Hex-файлы в Linux. Большинство систем Linux уже содержат множество утилит для работы с Hex-файлами.
Как редактировать шестнадцатеричные файлы в Linux
Бинарные файлы в основном используются для хранения всех файлов, кроме обычных текстовых. Они используются для хранения данных, изображений, звуковых файлов, исполняемых файлов. По умолчанию двоичные файлы нельзя просматривать с помощью обычных текстовых редакторов, таких как Vim или Nano. Поэтому для этой цели необходимо использовать специальные шестнадцатеричные редакторы.
Создание образца шестнадцатеричного файла
Давайте сначала создадим образец шестнадцатеричного файла для нашей цели. Мы создадим текстовый файл с некоторым человекочитаемым содержанием, а затем преобразуем его в двоичный шестнадцатеричный файл. Откройте терминал и выполните следующую команду для создания текстового файла.
1 | echo "Hello world" > sample.txt |
Далее мы преобразуем sample.txt в sample.bin с помощью команды hexdump.
1 | hexdump sample.txt > sample.bin |
После того как вы получили готовый hex-файл, вы можете использовать любой из hex-редакторов для редактирования по своему усмотрению. Xxd, ghex (GNOME hex editor), hexedit и jeex - вот некоторые из популярных hex-редакторов.
xxd - популярная утилита, позволяющая создавать шестнадцатеричный дамп из двоичных данных, а также конвертировать шестнадцатеричные данные в двоичные. Она поставляется предустановленной в большинстве дистрибутивов Linux. Это полезная команда, которая входит в пакет редактора vim. Обратите внимание, что она может использоваться как самостоятельный инструмент, так и как встроенная команда для использования в редакторе Vim/Vi. Вот команда для открытия созданного выше файла sample.bin с помощью vim.
1 | vim -b sample.bin |
Открыв файл таким образом, вы сможете увидеть его данные в шестнадцатеричном формате. Вы можете отредактировать его так, как вам удобно.
После внесения необходимых изменений вы можете выполнить следующую команду, чтобы преобразовать его в текстовый формат.
1 | :%!xxd -r |
Это преобразует шестнадцатеричные данные вашего файла в текстовый формат. Затем введите :wq, чтобы сохранить файл.
Заключение
В этой статье мы узнали, как редактировать шестнадцатеричные файлы в Linux. Главное - помнить, что нам нужно получить шестнадцатеричный эквивалент двоичного файла, использовать шестнадцатеричный редактор, такой как xxd, чтобы внести в него изменения, сохранить шестнадцатеричные данные обратно в текстовый формат и, наконец, сохранить файл. Если вы используете другие шестнадцатеричные редакторы, такие как ghex, вы можете напрямую открывать в них двоичные файлы. Он автоматически откроет файл в шестнадцатеричном формате, где вы сможете внести изменения и непосредственно сохранить изменения в двоичном файле.