Кроссплатформенный hex-редактор для реверс-инжиниринга и анализа бинарных данных с языком описания структур файлов.
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
Установите unblob из PyPI с помощью pip
pip install unblob - 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
Убедитесь, что все инструменты для распаковки доступны
unblob --show-external-dependencies - 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-инструментов для реверс-инжиниринга, анализа, дизассемблирования, отладки и эмуляции бинарных файлов в Unix-подобных системах.
Фреймворк для реверс-инжиниринга в UNIX-подобных системах и набор CLI-инструментов для анализа бинарных файлов, дизассемблирования кода и отладки программ.
Инструмент анализа прошивок на Rust: находит и при необходимости извлекает файлы и данные, встроенные в другие файлы.
Приложение для компьютера и CLI, которое распаковывает большие ZIP-, 7z-, tar- и разбитые на части архивы на месте, освобождая место по мере извлечения файлов.
Консольный CLI для сжатия, распаковки и просмотра архивов множества форматов с определением формата по расширению файла.