Как вставить данные в бинарный файл с помощью шестнадцатеричного редактора в Ubuntu?

Вопрос или проблема

Предположим, у меня есть двоичный файл под названием file.dat, который содержит данные “James is a good boy”.

Теперь скажем, что я хочу вставить данные ” not ” на 8-й индекс file.dat, чтобы file.dat

стал “James is not a good boy”. Как мне это сделать с помощью шестнадцатеричного редактора в ubuntu?

Установите Bless:

sudo apt update
sudo apt install bless

Bless hex editor (шестнадцатеричный редактор) — это кроссплатформенное приложение, доступное для основных операционных систем, таких как Linux, Microsoft Windows, MacOS.

Можно открывать любое количество окон, используя вкладку.

Вы можете быстро найти какой-либо контент и заменить его.

В Bless Hex editor (шестнадцатеричном редакторе) есть расширенный уровень функции копирования и вставки.

Вы можете использовать Bless как лучший шестнадцатеричный редактор для редактирования большого количества файлов данных и блочных устройств.

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

По умолчанию вы можете экспортировать данные в формате .txt и .html, но для других форматов вы можете использовать плагины.

Если данные действительно были видны в файле, как вы указали, вы в конечном итоге могли бы отредактировать их с помощью редактора vi или sed и просто внести изменения, чтобы добавить “not”.

Пример:

sed -e "s/James is a good boy/James is not a good boy/g" file.dat > newfile.dat

Но, не зная реального примера того, что вы пытаетесь сделать, сложно давать советы, не повредив ваш файл и не сделав его бесполезным. Например, ваша строка “James” в шестнадцатеричном редакторе будет выглядеть так: 614a 656d 2073 7369 6120 6720 6f6f 2064 6f62 0a79

Вы добавите три шестнадцатеричных символа плюс пробелы: 6e20 746f 0a20

Но если это изначально был двоичный файл, используемый конкретной программой (я думаю о Ufile или другом приложении), формат файла может больше не синхронизироваться, потому что ваше редактирование сдвинуло пять символов слишком далеко вправо.

Реальный пример: Я получаю EDI-файлы, которые находятся в очень старом формате, известном как COMPORD. Эти файлы имеют строгие стандарты для того, где каждая часть информации хранится в файле. И каждая строка может быть длиной только 80 символов. Если бы я изменил некоторые данные, добавив пять символов, остальная часть строки оказалась бы не на своем месте для чтения программой. И эта строка была бы длиной 85 символов и была бы обрезана или отклонена.

Вот почему важно знать, что программа, которая читает этот file.dat, ожидает увидеть в каждой строке вашего индекса. Если длина переменная и содержит разделители, то да, вы, вероятно, сможете редактировать, чтобы добавить дополнительные символы. Если фиксированной длины или каждую строку содержат поля, которые дополнены пробелами или другими ASCII-кодами, то вы повредите файл данных.

Ответ или решение

Как вставить данные в бинарный файл с помощью шестнадцатеричного редактора в Ubuntu

Редактирование бинарных файлов может быть сложной задачей, требующей осознания структуры данных и обстоятельств, в которых файл будет использоваться. В данном руководстве мы рассмотрим, как вставить текст " not " в файл file.dat, который содержит строку "James is a good boy", используя шестнадцатеричный редактор Bless в Ubuntu.

Установка Bless

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

sudo apt update
sudo apt install bless

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

Открытие файла в Bless

  1. Запустите Bless, введя в терминале команду bless.
  2. В меню выберите File > Open (Файл > Открыть) и выберите ваш файл file.dat.

Вставка данных

Чтобы вставить текст " not " на 8-й индекс:

  1. Найдите строку "James is a good boy" в редакторе. В шестнадцатеричном представлении она будет выглядеть следующим образом (частично):

    4a 61 6d 65 73 20 69 73 20 61 20 67 6f 6f 64 20 62 6f 79
  2. Перейдите к 8-й позиции в файле. Вы можете увидеть элементы управления позициями в нижней части окна Bless, чтобы понять, где вы находитесь.

  3. Вставьте новые данные:

    • Для вставки пробела и слова "not" вам нужно будет удалить существующий пробел между "is" и "a". Так как вы хотите изменить только часть строки, вам нужно сдвинуть последующие данные вправо, чтобы сохранить целостность файла.
  4. Преобразуйте " not " в его шестнадцатеричное представление:

    • " not " в шестнадцатеричном виде: 20 6e 6f 74 20.
  5. Вставьте данные, начиная с восьмого индекса. В итоге ваши данные должны выглядеть следующим образом:

    4a 61 6d 65 73 20 69 73 20 6e 6f 74 20 67 6f 6f 64 20 62 6f 79
  6. После завершения редактирования сохраните файл, выбрав File > Save (Файл > Сохранить).

Важные замечания

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

  • Использование hex-редактора: Hex-редакторы позволяют изменять байты напрямую, что может быть полезно в случаях, когда изменения должны быть минимальными, например, в контексте обработки данных с фиксированной длиной.

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

Заключение

Редактирование бинарных файлов с использованием hex-редактора, такого как Bless, требует осознания структуры файла и способности интерпретировать данные в шестнадцатеричном виде. Процесс добавления нового текста, как и в примере с " not ", требует осторожности, чтобы не повредить уже имеющуюся информацию. Надеемся, что данное руководство поможет вам успешно выполнить задачу редактирования файла в Ubuntu.

Оцените материал
Добавить комментарий

Капча загружается...