Repolode
onekey-sec

onekey-sec/unblob

Консольная утилита для рекурсивного извлечения файлов из более чем 78 форматов архивов, сжатия и файловых систем, а также вырезания неизвестных фрагментов из бинарных данных.

Звёзды
2,634
Форки
159
Открытые issues
56
Последний коммит
вчера

Что это?

unblob принимает неизвестный бинарный файл, например образ прошивки, и находит в нём вложенные контейнеры. Утилита разбирает известные форматы архивов, сжатия и файловых систем, включая SquashFS, JFFS2, UBI/UBIFS, ext, CPIO, ZIP, 7-Zip, gzip, XZ и LZMA, а затем рекурсивно извлекает их содержимое с ограничением глубины, которое можно настроить.

Данные, не соответствующие ни одному известному формату, вырезаются в виде неизвестных фрагментов; нулевые байты и заполнение значениями 0xFF определяются автоматически. Анализ энтропии и критерия хи-квадрат этих фрагментов помогает находить зашифрованные или сжатые области. В JSON-отчёт записываются смещения и размеры фрагментов, энтропия, владельцы, права доступа и временные метки.

Утилита работает от имени обычного пользователя и по умолчанию задействует несколько ядер CPU. Обработчики пользовательских форматов можно загружать во время работы через путь к плагинам. Утилиту можно установить через pip, Docker, Nix и пакеты Kali Linux; для её работы требуются несколько внешних утилит извлечения.

Ключевые возможности

  • 01Поддерживает более 78 форматов архивов, сжатия и файловых систем, например SquashFS, JFFS2, UBIFS и ZIP.
  • 02Рекурсивно извлекает вложенные контейнеры с ограничением глубины, которое можно настроить.
  • 03Определяет начальные и конечные смещения каждого фрагмента согласно спецификации формата.
  • 04Вырезает неизвестные данные и автоматически распознаёт нулевые байты и заполнение значениями 0xFF.
  • 05Вычисляет энтропию Шеннона и значения критерия хи-квадрат для неизвестных фрагментов.
  • 06Создаёт JSON-отчёты со смещениями, размерами, владельцами и правами доступа.
  • 07Поддерживает обработчики пользовательских форматов, подключаемые во время работы через путь к плагинам.

Сценарии использования

  • Распаковка образов прошивок для изучения их файловых систем при реверс-инжиниринге.
  • Поиск зашифрованных или сжатых областей в бинарных данных по значениям энтропии.
  • Пакетное извлечение встроенных архивов из дампов устройств в CI или конвейере анализа.
  • Добавление поддержки проприетарного формата контейнера с помощью пользовательского обработчика.

Быстрый старт

  1. 1

    Установите unblob из PyPI с помощью pip

    pip install unblob
  2. 2

    Установите необходимые внешние инструменты для распаковки в Ubuntu/Debian

    sudo apt install android-sdk-libsparse-utils e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover libhyperscan-dev zstd lz4
  3. 3

    Убедитесь, что все инструменты для распаковки доступны

    unblob --show-external-dependencies
  4. 4

    Распакуйте файл прошивки

    unblob firmware.bin

Что важно знать

  • Если вы не используете Docker, несколько внешних инструментов для распаковки придется устанавливать отдельно.
  • Для поддержки SquashFS необходимо отдельно установить дополнительный инструмент sasquatch.

В подборках

Темы

Частые вопросы

Что такое unblob?
Консольная утилита для рекурсивного извлечения файлов из более чем 78 форматов архивов, сжатия и файловых систем, а также вырезания неизвестных фрагментов из бинарных данных. unblob принимает неизвестный бинарный файл, например образ прошивки, и находит в нём вложенные контейнеры. Утилита разбирает известные форматы архивов, сжатия и файловых систем, включая SquashFS, JFFS2, UBI/UBIFS, ext, CPIO, ZIP, 7-Zip, gzip, XZ и LZMA, а затем рекурсивно извлекает их содержимое с ограничением глубины, которое можно настроить.
unblob можно использовать бесплатно? Какая у него лицензия?
unblob распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
unblob всё ещё поддерживается?
Активно поддерживается. Последний коммит в unblob — 5 нояб. 2026 г..
Для чего можно использовать unblob?
Распаковка образов прошивок для изучения их файловых систем при реверс-инжиниринге. Поиск зашифрованных или сжатых областей в бинарных данных по значениям энтропии. Пакетное извлечение встроенных архивов из дампов устройств в CI или конвейере анализа. Добавление поддержки проприетарного формата контейнера с помощью пользовательского обработчика.
Как установить unblob?
Установите unblob из PyPI с помощью pip: pip install unblob Установите необходимые внешние инструменты для распаковки в Ubuntu/Debian: sudo apt install android-sdk-libsparse-utils e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover libhyperscan-dev zstd lz4 Убедитесь, что все инструменты для распаковки доступны: unblob --show-external-dependencies Распакуйте файл прошивки: unblob firmware.bin
Где скачать unblob?
Исходный код и инструкции по установке — на GitHub: https://github.com/onekey-sec/unblob

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Приложение для компьютера и CLI, которое распаковывает большие ZIP-, 7z-, tar- и разбитые на части архивы на месте, освобождая место по мере извлечения файлов.

2,6 тыс.+228 за неделю84RustApache-2.0Активно поддерживаетсяОбновлён позавчера