Использование шестнадцатеричного редактора в Linux

Вы, вероятно, знакомы с понятием текстового редактора - в Linux их много, как для терминала, так и для рабочего стола. Варианты командной строки включают vi и nano, а на рабочем столе есть такие приложения, как gedit и Kate. Но что, если вам нужно отредактировать двоичный файл? Что можно использовать? Существует класс редактора, известный как "шестнадцатеричный редактор", который позволяет редактировать файлы любого типа, особенно двоичные.

Шестнадцатеричные редакторы получили свое название, потому что содержимое файла в основном отображается в виде шестнадцатеричных (шестнадцатеричных) чисел. Обычно мы считаем по основанию 10, что означает, что каждая цифра (или столбец) представляет собой коэффициент 10. Итак, 123 - это 3 единицы, 2 лота по 10 (т.е. 20) и 1 лот по 100 (т. Е. 100). Это замечательно и идеально подходит для того, как мы изучаем математику в детстве, ведь у нас десять пальцев! Один байт компьютерной памяти или дискового хранилища может представлять число вплоть до значения 255. Проблема с базой 10 состоит в том, что вам нужно 3 цифры для отображения 255. Однако на самом деле вам не нужно представлять значение в базе 10 Вы можете представить их в двоичном формате (например, с основанием 2) или в шестнадцатеричном (например, с основанием 16). В шестнадцатеричном формате каждая цифра или столбец представляет собой коэффициент 16, а не 10. Чтобы различать шестнадцатеричные числа и десятичные числа, шестнадцатеричные числа обычно имеют префикс "0х". Таким образом, 0x91 - это не девяносто один, а 145. Это 9 лотов по 16 плюс 1. В шестнадцатеричном формате числа выглядят так: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12 и так далее. Преимущество этой системы в том, что 255 (максимальное значение байта) можно записать как 0xFF (15 лотов по 16 плюс 15).

Шестнадцатеричный редактор использует эти двузначные представления для создания простой сетки, по которой можно легко перемещаться, что было бы сложнее с трехзначными десятичными числами.

Для Linux доступно несколько различных шестнадцатеричных редакторов, и, как и текстовые редакторы, некоторые из них предназначены для работы в терминале, а другие - на рабочем столе. Hexcurse - это простой текстовый редактор командной строки. Чтобы установить его в Ubuntu, введите в терминале следующее:

Чтобы попробовать hexcurses, введите следующее:

Это запустит программу и загрузит двоичный файл "ls", который находится в "/ bin".

hexcurse-bin-ls

Используйте клавиши со стрелками, страница вверх и страница вниз, чтобы перемещаться по сетке шестнадцатеричных чисел. Если вы введете число, байт в этой точке будет изменен на введенное вами число. Не пытайтесь сделать это сейчас, иначе вы можете сломать команду "/ bin / ls". Если вы нажмете TAB, курсор переместится в сторону ASCII (текст), и вы сможете изменить значения, вводя новые буквы, цифры и символы. Вот список основных ключей для использования hexcurse:

  • F2 или CTRL + s - Сохранить
  • F3 или CTRL + o - открыть
  • F4 или CTRL + g - Перейти
  • F5 или CTRL + f - найти
  • F8 или CTRL + q - выйти

Лучший способ безопасно экспериментировать с шестнадцатеричным редактором - это редактировать один из ваших собственных файлов (а не системный файл). Используйте nano для создания простой программы на C:

Вырежьте и вставьте следующий код:

Скомпилируйте программу:

Теперь вы можете безопасно вызывать hexcurse для полученного двоичного файла "hello". Если вы сломаете двоичный файл, это не имеет значения:

hexcurse-привет

Прокрутите вниз, пока не увидите строку "Здравствуйте, сделайте технологию проще!" в правом разделе. Нажмите TAB, чтобы переключиться в режим редактирования ASCII, и перейдите к слову "Hello". Введите слово "ПРИВЕТ". Обратите внимание, что строка изменяется в правой части, а шестнадцатеричные числа меняются в левой части. Новые шестнадцатеричные числа должны быть "48 45 4C 4C 4F", которые являются значениями ASCII для "HELLO".

Теперь сохраните файл с помощью "Ctrl + s" и выйдите с помощью "Ctrl + q". Теперь вы можете запустить двоичный файл "hello", и вы увидите, что результат - "HELLO Make Tech Easy!" а не "Привет, сделай технологию проще!" Это потому, что вы отредактировали двоичный файл и изменили строку.

ghex - это настольный шестнадцатеричный редактор. Для его установки используйте:

Его можно запустить из программы запуска или из командной строки. Чтобы отредактировать двоичный тип "hello":

Программа работает очень похоже на "hexcurse". Вы можете перемещаться с помощью клавиш со стрелками, страницы вверх и вниз. TAB переключает между редактированием шестнадцатеричного и текста. Ctrl + s сохраняет файл и так далее. Поскольку это настольное приложение, есть строка меню, в которой перечислены другие операции.

привет

Эти инструменты могут быть очень мощными, но также легко повредить двоичные файлы, поэтому используйте их с осторожностью. Если у вас есть какие-либо вопросы о "hexcurse" или "ghex", не стесняйтесь задавать их в разделе комментариев, и мы посмотрим, сможем ли мы помочь.

Один комментарий

  1. Совсем недавно я опубликовал Hexinator, бесплатный шестнадцатеричный редактор для Linux: https://hexinator.com
    Он поддерживает множество кодовых страниц и имеет несколько мощных функций для обратного проектирования.

Комментарии закрыты.