Binwalk - утилита анализа встроенного программного обеспечения
Binwalk - это инструмент для анализа и извлечения данных из байт-кода файлов (binaries). Он может быть использован для обнаружения и извлечения скрытых файлов, сжатых архивов, образов файловых систем, ядер Linux и других типов данных, которые могут быть скрыты внутри бинарных файлов.
Примеры использования binwalk:
1. Обнаружение и извлечение скрытых файлов в бинарном файле:
bash
$ binwalk firmware.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Intel x86 boot sector
466 0x1D2 gzip compressed data, last modified: 2017-06-28 07:42:14
672 0x2A0 Linux kernel ARM boot executable zImage (little-endian)
160836 0x27624 Squashfs filesystem, little endian, non-standard signature, version 4.0, compression:xz, size: 6207004 bytes, 813 inodes, blocksize: 131072 bytes, created: Wed Jun 28 07:52:07 2017
На этом примере binwalk обнаруживает несколько файлов, включая загрузочный сектор Intel x86, сжатый gzip-файл, ядро Linux ARM и образ файловой системы Squashfs. Команда `binwalk -e firmware.bin` извлечет все эти файлы в отдельные файлы.
2. Анализ сжатого бинарного файла:
bash
$ binwalk -Me firmware.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
466 0x1D2 gzip compressed data, last modified: 2017-06-28 07:42:14
Scan Time: 0.02 seconds
Эта команда показывает, что в бинарном файле есть только сжатый gzip-архив. Флаг `-Me` позволяет извлечь только найденные файлы.
3. Извлечение файлов из бинарного файла с определенным смещением и размером:
bash
$ binwalk --dd='.*' --dd-offset=466 --dd-length=100 firmware.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
466 0x1D2 gzip compressed data, last modified: 2017-06-28 07:42:14
Extracting data |#############################################################|
Scan Time: 0.01 seconds
Эта команда позволяет извлечь данные из бинарного файла с определенным смещением и размером. В этом примере мы извлекаем первые 100 байт смещения 466. Флаг `--dd='.*'` указывает на извлечение всех найденных файлов, а не только на один.
Binwalk - это мощный инструмент для анализа и извлечения данных из байт-кода файлов. Он может быть использован для анализа бинарных файлов, получения доступа к скрытым данным, обнаружения уязвимостей и многого другого.