Linux просмотр бинарного файла

Лучшие шестнадцатеричные редакторы для Linux

Оригинал: Top Hex Editors for Linux
Автор: Marin Todorov
Дата публикации: 8 февраля 2019 года
Перевод: А. Кривошей
Дата перевода: декабрь 2019 г.

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

Что такое шестнадцатеричный редактор

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

Кто использует шестнадцатеричные редакторы?

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

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

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

1. Xxd Hex Editor

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

2. Hexedit Hex Editor

Hexedit — это еще один шестнадцатеричный редактор командной строки, который может быть уже предустановлен в вашей ОС. Hexedit показывает и шестнадцатеричное и ASCII представление файла одновременно.

3. Hexyl Hex Editor

Другой полезный инструмент для проверки двоичного файла — это hexyl, простой просмотрщик шестнадцатеричных данных для терминала Linux, который использует цветной вывод для определения различных категорий байтов.

Интерфейс Hexyl разделен на три колонки:

— столбец смещения, чтобы указать количество байтов в файле;
— столбец, содержащий шестнадцатеричное представление файла (обратите внимание, что между ними есть граница);
— текстовое представление файла.

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

4. Ghex – шестнадцатеричный редактор для GNOME

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

5. Bless Hex Editor

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

6. Okteta Editor

Okteta — еще один простой редактор для просмотра файлов необработанных данных. Некоторые из основных особенностей Okteta включают в себя:

— редактирование аналогично текстовому редактору;
— различные профили для просмотра данных;
— работа с удаленными файлами по FTP или HTTP.

7. wxHexEditor

wxHexEditor — еще один из шестнадцатеричных редакторов Linux, который имеет некоторые расширенные функции, и хотя официальной документации для редактора нет, есть хорошо написанная вики-страница, которая объясняет, как его использовать. Вики-страницу можно найти здесь .

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

Читайте также:  Долго грузится экран приветствия windows 10

8. Hexcurse – консольный шестнадцатеричный редактор

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

9. Hexer Binary Editor

Hexer — еще один бинарный редактор командной строки. Разница в этом заключается в том, что это Vi-подобный редактор. Некоторые из наиболее заметных функций — много буферов, многоуровневая отмена, редактирование командной строки с автозавершением и двоичные регулярные выражения.

Источник

Как просмотреть двоичный файл?

Из того, что я понимаю, компилятор создает двоичный файл, состоящий из 1 и 0, который может читать ЦП. У меня есть двоичный файл, но как его открыть, чтобы увидеть 1 и 0, которые есть? Текстовый редактор говорит, что он не может открыть его …

PS У меня есть сборка скомпилированных двоичных файлов, которая должна быть простым двоичным кодом 1 и 0?

возможно, если вы не хотите редактировать его, конечно. Большинство дистрибутивов linux по умолчанию имеют hexdump (но, очевидно, не все).

Обновить

xxd выполняет двоичный и шестнадцатеричный

Различные люди ответили на некоторые аспекты запроса, но не все.

Все файлы на компьютерах хранятся как 1, так и 0. Изображения, текстовые файлы, музыка, исполняемые приложения, объектные файлы и т. Д.

Они все 0 и 1. Единственное различие заключается в том, что они интерпретируются по-разному в зависимости от того, что их открывает.

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

Когда вы просматриваете файл с помощью средства просмотра изображений, он принимает все 1 и 0 и превращает их в изображение, в зависимости от формата файла и некоторой логики, чтобы все это исправить.

Скомпилированные двоичные файлы не отличаются друг от друга, они хранятся как 1, так и 0.

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

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

objdump -d /path/to/binary

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

Некоторые внешние чтения.

NB: как указывает @Wildcard, важно отметить, что файлы не содержат символов 1 и 0 (как вы видите их на экране), они содержат фактические числовые данные, отдельные биты информации, которые либо находятся на (1) или выключить (0). Даже это описание является лишь приближением истины. Они указывают на то, что если вы найдете зрителя, который показывает вам 1 и 0, даже это все еще интерпретирует данные из файла, а затем показывает вам символы ASCII для 0 и 1. Данные хранятся в двоичном формате ( см. ссылку Двоичный номер выше). Прединичная публикация сообщества Пьера-Оливье охватывает это более подробно.

На низком уровне файл кодируется как последовательность из 0 и 1.

Но даже программисты редко ходят туда на практике.

Во-первых (и что более важно, чем эта история 0 и 1), вы должны понимать, что все, что манипулирует компьютером, закодировано цифрами .

Символ кодируется числом, используя таблицы набора символов. Например, буква «A» имеет значение 65 при кодировании с использованием ASCII. См. http://www.asciitable.com

Пиксель кодируется одним или несколькими номерами (существует много графических форматов). Например, в стандартном трехцветном формате желтый пиксель кодируется как: 255 для красного, 255 для зеленого, 0 для синего. См. http://www.quackit.com/css/css_color_codes.cfm (выберите цвет и посмотрите ячейки R, G и B)

Бинарный исполняемый файл записывается в Assembly; каждая инструкция сборки кодируется как числа. Например, инструкция сборки MOVB $0x61,%al кодируется двумя номерами: 176,97 См. http://www.sparksandflames.com/files/x86InstructionChart.html (Каждая команда имеет связанный номер от 00 до FF, поскольку шестнадцатеричная нотация, см. ниже)

Читайте также:  Перестали работать все usb порты windows

Во-вторых : каждый номер может иметь несколько представлений или обозначений .

Скажем, у меня 23 яблока.

    Если я создам группы из десяти яблок, я получу: 2 десятых и 3 отдельных яблока. Это именно то, что мы имеем в виду, когда пишем 23: 2 (десятых), затем 3 (единицы).

Но я также могу сделать группы из 16 яблок. Поэтому я получу одну группу из 16 и 7 яблок. В шестнадцатеричной нотации (так называется 16-я основа) я напишу: 17. Чтобы отличить десятичную нотацию, шестнадцатеричную нотацию обычно отмечают с помощью префикса или суффикса: 17h, # 17 или $ 17. Но как представить более 9 групп из 16 или более из 9 одиноких яблок? Просто мы используем буквы от A (10) до F (15). Число 31 (как в 34 яблоках) записывается как # 1F в шестнадцатеричном виде.

По тому же принципу мы можем делать только группы из двух яблок. (И группа из двух групп из двух яблок, т. Е. Группы из 2×2-яблок и т. Д.). Затем 23: 1 группа из 2x2x2x2-яблок, 0 групп из 2x2x2-яблок, 1 группа из 2×2-яблок, 1 группа из 2 яблок и 1 одно яблоко. Который будет отмечен 10111 в двоичном

Физически механизмы, позволяющие использовать два состояния (переключатели), легко сделать, а также на диске, хранящемся в памяти.

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

Затем переводится – в зависимости от типа данных – в соответствующую форму (буква А, желтый пиксель) или выполняется (инструкция MOV).

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

Я бы начал с od (восьмеричный дамп) и в зависимости от системы мог найти полезные инструменты, такие как objdump .

Вы можете открыть его в шестнадцатеричном редакторе, который показывает его как последовательность шестнадцатеричных значений. xxd file

Что вы пытаетесь достичь?

bvi – это двоичный редактор VIsual с комбинациями клавиш vim. Он доступен для большинства Linux-систем.

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

Что равно 35 и 32 в десятичной

Также 35 и 32 в десятичной

Вы можете просмотреть файл в двоичном формате в vim , путем:

  • Открытие файла в vim
  • Ввод :% !xxd -b

Команда xxd может быть дополнительно изменена, например:

  • Добавив -g4 , который будет группировать биты в 32-разрядных пакетах
  • Добавив -c4 , который будет форматировать вывод, будет иметь 4 байта на строку

Добавление обоих флагов выше, даст вам одно 32-битное целое число в строке.

Команда строк Linux печатает строки печатаемых символов в файлах, например:

и т. д., это более читаемо, чем двоичное.

Вы можете сделать это, например, этот рубиновый однострочный:

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

GHex – ваш друг 🙂
Вы можете установить его с помощью командной строки

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Лучшие HEX – редакторы для Linux

В этой статье мы рассмотрим топ лучших шестнадцатеричных редакторов для Linux. Но прежде чем мы начнем, давайте посмотрим на то, что на самом деле является hex-редактором.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Про Linux за 5 минут

  • Что такое Hex-редактор

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

    Читайте также:  Windows 10 отмена изменений постоянно перезагружается

    Кто использует Hex-редакторы

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

    Большинство из упомянутых шестнадцатеричных редакторов доступны для установки из репозитория по умолчанию с помощью диспетчера пакетов вашего дистрибутива, например:

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

    Xxd Hex Editor

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

    Hexedit Hex Editor

    Hexedit — это еще один шестнадцатеричный редактор командной строки, который уже может быть предварительно установлен в вашей ОС. Hexedit показывает и шестнадцатеричное и ASCII представление файла одновременно.

    Hexyl Hex Editor

    Другой полезный инструмент для проверки двоичного файла — это hexyl, простой просмотрщик шестнадцатеричных данных для терминала Linux, который использует цветной вывод для определения различных категорий байтов.

    Его вид разделен на три колонки:

    • Смещенный столбец, указывающий количество байтов в файле.
    • Шестнадцатеричный столбец, который содержит шестнадцатеричное представление файла.
    • Текстовое представление файла.

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

    Ghex — GNOME Hex Editor

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

    Bless Hex Editor

    Одним из наиболее продвинутых шестнадцатеричных редакторов в этой статье является Bless, похожий на Ghex, он имеет графический интерфейс, который позволяет редактировать большие файлы данных с многоуровневым механизмом отмены/повторения. Он также имеет настраиваемые представления данных, функцию поиска-замены и многопоточные операции поиска и сохранения. Несколько файлов могут быть открыты одновременно с помощью вкладок. Функциональность также может быть расширена с помощью плагинов. Ссылка на GitHub.

    Okteta Editor

    Okteta — еще один простой редактор для просмотра файлов необработанных данных. Некоторые из основных особенностей октета включают в себя:

    • Различные представления символов — традиционные в столбцах или в строках со значением верха символа.
    • Редактирование аналогично текстовому редактору.
    • Различные профили для просмотра данных.
    • Несколько открытых файлов.
    • Удаленные файлы по FTP или HTTP.

    wxHexEditor

    wxHexEditor — еще один из шестнадцатеричных редакторов Linux, обладающий некоторыми расширенными функциями.

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

    Hexcurse — Conx Hex Editor

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

    Hexer Binary Editor

    Hexer — еще один бинарный редактор командной строки. Его отличительная особенность заключается в том, что это Vi-подобный редактор стилей для бинарных файлов. Некоторые из наиболее заметных особенностей — много буферов, многоуровневая отмена, редактирование командной строки с завершением и двоичное регулярное выражение.

    Emacs

    Emacs является альтернативой текстовому редактору Vim и предоставляет функции редактирования в шестнадцатеричном формате. Простота и удобное переключение между режимами являются важнейшими особенностями Emacs

    Заключение

    Это был краткий обзор некоторых наиболее часто используемых шестнадцатеричных редакторов в Linux. Какие шестнадцатеричные редакторы вы используете и почему вы предпочитаете именно этот редактор? Что делает его лучше других?

    Онлайн курс по Linux

    Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

    Источник

  • Оцените статью