Просмотр бинарных файлов linux

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) , он

Читайте также:  What is bourne shell in linux

использует запрос 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

Источник

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

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

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

Читайте также:  Посмотреть дерево процессов linux

Рабочее окно стандартного 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.

4. Bless Hex editor

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

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

5. Okteta Editor

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

6. wxHexEditor

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

7. HexCurse

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

Читайте также:  Linux daemon and service

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 интерфейс, который весьма прост в использовании. Доступ к справочным материалам предоставляется через специальную кнопку на экране.

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

14. VBdiff Hex Editor

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

15. HexCmp

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

Выводы

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

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

Источник

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