Главная > Обработка текста и поиск > strings

strings: Извлечение строк из бинарных файлов

Команда strings – это инструмент для извлечения читаемых текстовых строк из бинарных файлов (исполняемых файлов, библиотек и т.д.). Она полезна при отладке программ, анализе вредоносного ПО или быстром просмотре содержимого неизвестных файлов.

Обзор

Бинарные файлы состоят из нулей и единиц, которые напрямую исполняются компьютером, поэтому при открытии их в обычном текстовом редакторе отображаются поврежденные символы. Команда `strings` находит и извлекает в текстовом виде непрерывные последовательности из четырех или более печатных символов внутри таких бинарных файлов. Это позволяет получить полезную информацию, такую как сообщения об ошибках, пути к файлам, URL-адреса, значения конфигурации и т. д., содержащиеся в бинарном файле.

Основные особенности

Основные особенности команды strings:

  • Извлекает читаемые строки из бинарных файлов.
  • По умолчанию ищет непрерывные последовательности из 4 или более печатных символов.
  • Поддерживает различные кодировки символов (ASCII, UTF-16 и т.д.).
  • Полезна для определения названий библиотек или информации о конфигурации, используемой программой.

Области применения strings

strings может использоваться в различных областях, не ограничиваясь простым просмотром файлов.

  • Анализ вредоносного ПО: Извлекает адреса серверов C&C, имена файлов, вызовы API и другую информацию из бинарных файлов вредоносного ПО.
  • Отладка: Находит сообщения об ошибках или отладочные строки, включенные в исполняемый файл, для решения проблем.
  • Анализ неизвестных файлов: Когда расширение файла неясно, strings позволяет проверить внутренний текст для определения характера файла.

Основные опции

Основные опции команды strings сгруппированы по назначению.

1) Опции извлечения

2) Справка

Сгенерированная команда:

Комбинируйте команды.

Описание:

`strings` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

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

Изучите функционал команды strings на различных примерах использования.

Извлечение базовых строк из бинарного файла

strings /usr/bin/top

Извлекает строки из бинарного файла `/usr/bin/top` с базовыми настройками (4 символа или более).

Извлечение только более длинных строк

strings -n 8 /usr/bin/top

Используйте опцию `-n` для извлечения строк длиной 8 символов или более.

Вывод строк вместе с шестнадцатеричным смещением

strings -t x /usr/bin/top

Опция `-t x` выводит шестнадцатеричное смещение, с которого начинается каждая строка в файле. Полезно при анализе бинарных файлов.

Использование с пайпом (|)

strings /usr/bin/top | grep error

Извлекает только строки, содержащие 'error', из файла `/usr/bin/top`.

Извлечение строк в кодировке UTF-16

strings -e l /path/to/binary

Используйте опцию `-e` для извлечения строк в кодировке UTF-16. `l` означает little-endian, `b` — big-endian.

Установка

strings является частью пакета `binutils` и по умолчанию включена в большинство дистрибутивов Linux. Отдельная установка не требуется.

Debian/Ubuntu

sudo apt update
sudo apt install -y binutils

RHEL/CentOS/Fedora

sudo dnf install -y binutils

Советы и примечания

Здесь собраны важные моменты при использовании команды strings.

Советы

  • `strings` предоставляет гораздо более чистую и полезную информацию из бинарных файлов, чем `cat`. `cat` выводит содержимое бинарного файла как есть, что может повредить терминал.
  • Извлеченные строки могут содержать символы новой строки или пробелы, поэтому их можно дополнительно обработать, соединив с `grep`, `awk` и другими командами через пайп для более удобного использования.

Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории