Как распаковать BIN файл прошивки: пошаговое руководство

Попытка открыть BIN файл прошивки обычным архиватором почти всегда заканчивается ошибкой «архив поврежден или имеет неизвестный формат» — и это нормально, потому что .bin здесь не архив, а бинарный образ, структура которого зависит от конкретного устройства. Распаковать такой файл можно, но сначала нужно понять, что именно внутри: файловая система роутера, образ BIOS, дамп памяти Android-устройства или прошивка микроконтроллера.

В этой статье разберём рабочие инструменты — от универсальных анализаторов вроде binwalk до специализированных утилит для UEFI и Android. Вы узнаете, как определить тип образа, извлечь из него файлы и не испортить данные в процессе.

Что находится внутри BIN файла прошивки

Расширение .bin — это просто контейнер, за которым может скрываться что угодно. Производители используют его для образов SPI Flash роутеров, прошивок материнских плат, дампов eMMC смартфонов, обновлений для принтеров и автомобильных ЭБУ. Универсального формата не существует.

Типичное содержимое бинарного образа прошивки:

  • 🔧 Загрузчик (bootloader) — стартовый код, который инициализирует железо;
  • 🧩 Ядро системы — например, сжатый образ Linux-ядра для роутеров;
  • 📁 Корневая файловая система — чаще всего SquashFS или JFFS2 в сетевых устройствах;
  • 🔐 Заголовки и контрольные суммы — служебные блоки для проверки целостности;
  • 🗜️ Сжатые разделы — данные в форматах LZMA, gzip или zlib.

Именно из-за такой «слоёной» структуры обычные архиваторы бессильны: они ищут сигнатуру ZIP или RAR в начале файла, а её там нет. Нужны инструменты, которые сканируют весь образ и находят вложенные блоки по их сигнатурам.

Определяем тип образа перед распаковкой

Прежде чем запускать извлечение, проверьте сигнатуры внутри файла. Самый быстрый способ — открыть BIN в hex-редакторе, например HxD для Windows, и посмотреть первые байты. Строки вроде hsqs указывают на SquashFS, USTAR — на tar-архив, а читаемые названия модулей UEFI говорят о том, что перед вами образ BIOS.

Более информативный вариант — команда file в Linux или WSL:

file firmware.bin

Она покажет предполагаемый тип данных. Для глубокого анализа используйте binwalk без ключей извлечения — он просто выведет карту найденных блоков со смещениями:

binwalk firmware.bin

Распаковка через binwalk

Binwalk — главный инструмент для анализа прошивок роутеров, IP-камер и встраиваемых устройств. Изначально он разработан для Linux, но запускается и в Windows через WSL, а также в macOS. Утилита сканирует образ на предмет известных сигнатур и умеет автоматически извлекать найденные разделы.

Для распаковки с рекурсивным извлечением вложенных архивов выполните:

binwalk -Me firmware.bin

Ключ -M включает рекурсивное сканирование извлечённых файлов, а -e — собственно извлечение. Результат появится в папке вида _firmware.bin.extracted рядом с исходным файлом. Внутри обычно лежит каталог squashfs-root — это и есть распакованная файловая система устройства.

☑️ Подготовка к распаковке BIN прошивки

Выполнено: 0 / 5

Если binwalk находит SquashFS, но не может её извлечь, возможная причина — нестандартная компрессия производителя. В этом случае помогает пакет sasquatch — модифицированный unsquashfs с поддержкой патченых вариантов формата.

⚠️ Внимание: распаковка прошивки и её модификация — разные вещи. Изменённый и пересобранный образ может вывести устройство из строя при загрузке. Если вы планируете не только извлечь, но и перепрошить устройство, заранее изучите способы восстановления для конкретной модели (UART-консоль, режим восстановления, программатор).

Распаковка прошивок BIOS и UEFI

Образы BIOS/UEFI для материнских плат и ноутбуков имеют собственную структуру, и binwalk здесь не лучший выбор. Стандартный инструмент — UEFITool, который открывает образ в виде дерева модулей: драйверы, DXE-ядро, микрокоды процессора, NVRAM-разделы.

Порядок действий простой: откройте файл через File → Open image file, найдите нужный модуль в дереве и извлеките его через контекстное меню — Extract as is (без изменений) или Extract body (только тело без заголовка). Для поиска конкретного модуля по имени или GUID используйте встроенный поиск.

📊 С прошивкой какого устройства вы работаете?
Роутер или IP-камера
BIOS/UEFI материнской платы
Смартфон или планшет на Android
Микроконтроллер или другое устройство

Отдельный случай — прошивки, упакованные производителем в фирменный контейнер. Например, некоторые вендоры добавляют собственный заголовок или шифруют образ. Если UEFITool не распознаёт файл, возможная причина — как раз такая обёртка; тогда сначала нужно срезать заголовок в hex-редакторе или найти утилиту распаковки под конкретного производителя.

Другие инструменты: от 7-Zip до специализированных утилит

Не каждый BIN требует тяжёлой артиллерии. Иногда помогают простые средства, а иногда нужны узкоспециальные программы. Сравним основные варианты:

ИнструментТип прошивкиОсобенности
binwalkРоутеры, камеры, embeddedСканирование сигнатур, рекурсивное извлечение
UEFIToolBIOS/UEFI ПК и ноутбуковДерево модулей, извлечение по GUID
7-ZipНекоторые update-пакетыРаботает, если внутри стандартный архив
unsquashfs / sasquatchФайловые системы SquashFSИзвлечение rootfs роутеров
Hex-редактор (HxD)Любые образыРучной анализ и срезание заголовков

Стоит попробовать открыть файл в 7-Zip через ПКМ → 7-Zip → Открыть архив: часть обновлений, особенно для ТВ-приставок и бытовой техники, представляет собой обычный архив с расширением .bin. Это займёт секунды, и если сработает — дальнейший анализ не нужен.

Для Android-устройств ситуация другая: там чаще встречаются образы boot.img, system.img или payload.bin внутри OTA-обновлений. Для них существуют отдельные инструменты, и выбор зависит от конкретного формата — универсальной команды нет.

Что делать, если binwalk ничего не находит

Если сканирование не выявило ни одной сигнатуры, вероятные причины: образ зашифрован производителем, файл является дампом в «сыром» виде без стандартных структур, либо это фрагмент прошивки, а не полный образ. Проверьте энтропию файла командой binwalk -E: равномерно высокая энтропия на всём протяжении — косвенный признак шифрования. В таком случае без ключа расшифровки или служебной утилиты вендора извлечь данные не получится.

Типичные ошибки при распаковке

Даже с правильным инструментом процесс не всегда идёт гладко. Вот с чем сталкиваются чаще всего:

  • Извлечённые файлы пустые или битые — возможная причина в неподдерживаемом алгоритме сжатия; попробуйте альтернативный экстрактор;
  • 🔒 Образ зашифрован — производители всё чаще шифруют прошивки; проверьте энтропию и поищите утилиту расшифровки под свою модель;
  • ✂️ Неполный файл — если образ скачан не до конца или это дамп части памяти, сигнатуры могут отсутствовать;
  • 🧱 Фирменный заголовок мешает анализу — срежьте начальные байты в hex-редакторе и повторите сканирование.
⚠️ Внимание: скачивайте инструменты для работы с прошивками только из официальных репозиториев и сайтов разработчиков. Популярность темы делает её привлекательной для распространения вредоносных «распаковщиков», особенно на форумах и файлообменниках.

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

Часто задаваемые вопросы

Можно ли распаковать BIN файл обычным WinRAR или 7-Zip?

Иногда — да. Часть производителей распространяет обновления в виде обычных архивов с расширением .bin, и 7-Zip открывает их без проблем. Но для полноценных бинарных образов (роутеры, BIOS, дампы памяти) архиваторы бесполезны — нужны binwalk, UEFITool или аналогичные инструменты.

Binwalk не извлекает файловую систему SquashFS. Что делать?

Вероятная причина — нестандартная компрессия, которую использует производитель устройства. Установите пакет sasquatch (модифицированный unsquashfs с поддержкой патченых вариантов SquashFS) и повторите извлечение. Также проверьте, не зашифрован ли раздел.

Как понять, что прошивка зашифрована?

Косвенный признак — равномерно высокая энтропия по всему файлу. Проверить её можно командой binwalk -E firmware.bin: график без провалов и участков низкой энтропии указывает на шифрование. В этом случае без ключа или фирменной утилиты расшифровки распаковать образ не получится.

Можно ли после распаковки изменить прошивку и собрать её обратно?

Технически — да, для многих форматов существуют инструменты пересборки (mksquashfs для файловых систем, UEFITool и UEFIReplace для BIOS). Но пересобранный образ должен пройти проверку контрольных сумм и подписей устройством, иначе прошивка будет отклонена или устройство перестанет загружаться. Порядок пересборки сильно зависит от конкретной модели.

Чем открыть BIN прошивки на Windows без Linux?

Для BIOS/UEFI подойдёт UEFITool — у него есть нативная Windows-версия. Binwalk можно запустить через WSL (подсистему Windows для Linux). Простые проверки выполняются в hex-редакторе HxD, а 7-Zip стоит попробовать в первую очередь — вдруг внутри обычный архив.