Обзор
Бинарные файлы состоят из нулей и единиц, которые напрямую исполняются компьютером, поэтому при открытии их в обычном текстовом редакторе отображаются поврежденные символы. Команда `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` и другими командами через пайп для более удобного использования.