Чем открыть бинарный файл linux

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

HEX-редактор — это приложение, с помощью которого можно просмотреть и отредактировать файл, содержащий двоичные данные (записанные при помощи комбинаций из цифр 0 и 1), перекодировав его в 16-ричный формат.

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

Рабочее окно стандартного HEX-редактора разделено на три области. Справа расположена так называемая область символов, в центральной части — область 16-ричного кода и слева — область адресов. В наше время пользователям Linux доступно множество таких программ — каждый может выбрать ту, которая окажется максимально полезной в конкретной ситуации. В этой статье мы собрали лучшие hex редакторы linux.

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

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

1. Vim

Vim служит для редактирования текстовых файлов в шестнадцатеричной системе. В работе он задействует внешний инструмент «xxd», который входит в базовый набор некоторых дистрибутивов Linux. Такое «сотрудничество» иногда становится причиной ошибок в работе редактора.

Преобразование файлов происходит после применения команд:

  • :%! xxd — для конвертирования файла в 16-ричный формат;
  • %! xxd -r — для возвращения к исходному варианту.

2. Hexedit Hex Editor

Hexedit — простой и надежный HEX editor linux. Среди прочих выделяется наличием большого количества опций (быстрый поиск и/или сравнение, подсветка символов, EBCDIC, применение цветовых схем, режимы INS/OVR, закладки. отслеживание изменений.

  • Hexedit используется в работе таких функций ПК как макросы, нажатия клавиш, фоновый поиск, редактор дисков и другие.
  • Настройка подсказок, калькулятор, шаблоны. Поддержка файлов, размер которых превышает 4 Гб.
  • Наличие инструментов Auto-hide tool windows (для быстрого скрытия окон) и Docking tool windows (для закрепления окон).
  • По команде пользователя Hexedit может получать доступ к памяти компьютера, всем дискам и файлам.

3. Ghex – GNOME Hex Editor

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

  • Многошаговые команды Undo (отмена) и Redo (повтор).
  • Поиск функций в файлах и их замена.
  • Отслеживание взаимодействий между восьмеричным, двоичным, шестнадцатеричным и десятичным кодами.
  • Настраиваемый MDI.
Читайте также:  Сколько места занимает kali linux

4. Bless Hex editor

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

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

5. Okteta Editor

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

6. wxHexEditor

Мощный инструмент, поддерживающий различные типы файлов, аксессуары и тэги, размер которых может исчисляться в Эксабайтах (1 Эб = 10 18 байт). В большей степени его использование имеет смысл для программистов.

7. HexCurse

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

8. Hexer

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

9. Dhex Hex Editor

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

10. Jeex Hex Editor

Jeex может похвастаться открытым исходным кодом, который был написан на языке Gtk + и опубликован под публичной лицензией GNU. Позволяет выполнять операции в двоичном, восьмеричном, десятичном и шестнадцатеричном форматах. На данный момент является одним из лучших HEX-редакторов.

11. Binary Ninja

Платная программа, написанная на Python и опубликованная под лицензией GPLv2. Особенность этой программы — она рассчитана в первую очередь на реверс-инжиниринг. Все желающие могут скачать демо-версию и в течение 25 минут протестировать Binary Ninja с урезанным количеством опций.

Особенности программы:

  • Графики с синопсисами, позволяющими просмотреть и проанализировать информацию о заданной в данный момент функции.
  • Благодаря подменю, выбранные плагины можно объединять в отдельные группы.
  • Улучшенная работа PE-анализатора и PE-парсера.
  • Доступ к логам осуществляется посредством нажатия на строку с адресом.
  • Binary Ninja помогает найти нужную библиотеку для выполнения той или иной бинарной функции.

12. Fileobj Hex Editor

Fileobj был написан на python и основывается на ncurses. Интерфейс этого HEX-редактора напоминает Vi, соответственно, у этих программ много одинаковых функций. Кроме того, Fileobj умеет выполнять большинство команд Vi, что удобно для пользователей.

13. Joe Hex Editor

Джо — еще один HEX-редактор на ncurses, доступный пользователям Linux. Имеет пользовательский mode-less интерфейс, который весьма прост в использовании. Доступ к справочным материалам предоставляется через специальную кнопку на экране.

  • Для упрощения работы можно использовать комбинации клавиш.
  • Настройка конфигураций.
  • Поддержка всех популярных форматов файлов.
Читайте также:  Gpt при установке linux

14. VBdiff Hex Editor

Название этой программы — VBdiff — буквально обозначает «Визуально двоичный diff». Этот бесплатный редактор способен открывать два файла одновременно и может их сравнивать. Умеет работать с большими документами.

15. HexCmp

HexCmp входит в состав программного обеспечения Fairdell. Это удобное приложение для сравнения и редактирования двоичных файлов как в двоичном, так и в 16-ричном форматах.

Выводы

Упомянутые выше HEX редакторы Linux, достаточно часто используются владельцами компьютеров, работающих под этой операционной системой. Некоторые из них более популярны среди специалистов — программистов и разработчиков. Другие приходятся по вкусу тем, кто пользуется подобным ПО лишь от случая к случаю. Тем не менее, можно сказать, что все они достаточно гибкие и функциональные для того, чтобы удовлетворить потребности всех пользователей.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Linux: анализируем бинарные файлы. Часть 1. Программы.

Список программ для работы с двоичными файлами в операционной системе Linux .

GDB

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

Objdump

Objdump из GNU binutils . Дамп объекта ( objdump ) — простое и понятное решение для быстрого дизассемблирования программного кода. Objdump отлично подходит для дизассемблирования простых и неповреждённых двоичных файлов, но все его ограничения сразу выплывут на поверхность при попытке использовать objdump для любого, действительно сложного реверса, особенно в ситуациях, использования данной программы против вредоносного ПО. Основная слабость objdump заключается в том, что он, в своей работе, полностью полагается на заголовки раздела ELF и не выполняет необходимый анализ нижнего уровня управления . Оба эти ограничения значительно снижают надёжность программы , что приводит к невозможности правильно дизассемблировать код внутри двоичного файла, а возможно, что даже к возникновению ошибок при простой попытке открыть двоичный файл, не имеющий в своей структуре заголовков разделов. Однако, для многих простых и обычных задач, он идеально подходит . Например, при дизассемблировании обычных двоичных файлов , которые не расширяются , не удаляются , не используют обфускацию . Он может читать все распространенные типы двоичных ELF файлов. Вот несколько примеров использования программы objdump :

• Просмотрите все данные / код в каждом разделе файла ELF:

• Просмотр только программного кода в файле ELF:

Objcopy

Objcopy из GNU binutils. Копирование объекта ( Objcopy ) — невероятно мощный и миниатюрный инструмент, но при этом весь его функционал крайне тяжело уместить всего в нескольких предложениях. Я настоятельно рекомендую вам прочитать страницы руководства для изучения полного описания данной программы. Objcopy можно использовать для анализа и изменения объектов ELF любого типа , хотя некоторые из его функций специфичны для определенных типов объектов ELF. Objcopy часто используется для изменения или копирования раздела ELF в двоичный файл ELF или обратно, раздела ELF из файла.

Читайте также:  Удалить содержимое файла линукс

Пример использования objcopy :

Для копирования секции .data из объекта ELF в файл , используйте следующую команду:

objcopy –only-section=.data

Strace

Трассировка системного вызова ( strace ) — это инструмент, основанный на системном вызове ptrace (2) , он

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

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

Команда strace , используемая для трассировки базовой программы :

strace / bin / ls -o ls.out

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

Первоначальный вывод команды ( по умолчанию ) покажет вам номер дескриптора файла каждого системного вызова , который принимает в качестве своего аргумента дескриптор файла, например:

SYS_read (2, buf, sizeof (buf));

Если вы хотите увидеть все данные, которые считывались в дескриптор файла 2 , вы можете выполнить следующую команду:

strace -e read = 2 / bin / ls

Вы также можете использовать параметр -e write = fd для просмотра записанных данных . Программа strace — отличный инструмент, и у вас, несомненно, будет целый ряд причин, чтобы его использовать.

ltrace

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

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

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

Пример использования ltrace :

ftrace

Функция трассировки ( ftrace ) — это инструмент, очень похожий на ltrace , он

показывает вызовы функций внутри самого двоичного файла .

Программу ftrace можно скачать по следующему адресу: https://github.com/elfmaster/ftrace .

Readelf

Программа readelf — это пожалуй, один из самых полезных инструментов для анализа двоичных файлов формата ELF. Readelf анализирует каждый бит данных, используемый в формате ELF и позволяет получить большое количество информации об объекте ещё до его реверс инжиниринга . Readelf используется для сбора информации о символах , сегментах , разделах , записях релокации , динамическом связывании данных и ещё много другой полезной информации. Команда readelf — это

Швейцарский армейский нож для файлов формата ELF .

Примеры некоторых из наиболее часто используемых функций readelf:

Послесловие

А какие программы для анализа бинарных файлов в операционной системе Linux знаете и используете Вы? Поделитесь своим личным опытом и расскажите об этом в комментариях !

Другие материалы по теме анализа бинарных файлов в Linux

Источник

Оцените статью
Adblock
detector