Бесплатная библиотека Python для создания и управления большими ZIP‑архивами
Мощная открытая, очень быстрая библиотека Python, позволяющая разработчикам Python загружать, извлекать и разбирать данные более чем из 30 различных форматов архивов, сжатия и файловых систем
Что такое библиотека Unblob?
Unblob — это важная библиотека Python и инструмент командной строки, разработанные для упрощения и ускорения извлечения бинарных блобов — файлов, содержащих данные в неизвестных или проприетарных форматах, часто встречающихся в образах прошивок, дампах памяти, сетевых пакетах или зашифрованных архивах. Изначально разработанный и поддерживаемый компанией ONEKEY для использования в их платформе анализа продукции, Unblob профессионально решает задачу парсинга этих сложных файлов, поддерживая более 30 различных форматов архивов, сжатия и файловых систем. Он эффективно обрабатывает форматы такие как ZIP, TAR, GZIP, BZIP2, XZ, LZMA, SquashFS, CramFS, JFFS2, UBI/UBIFS и YAFFS2, рекурсивно извлекая содержимое и вырезая неидентифицированные фрагменты, которые остаются неучтенными.
Бесплатно доступный под лицензией MIT, Unblob одновременно высокоэффективен и невероятно универсален. Он обеспечивает молниеносную производительность, используя многопроцессорность, оптимизированный код, файлы с отображением в память и высокопроизводительную библиотеку сопоставления Hyperscan. Инструмент минимизирует ложные срабатывания и перекрывающиеся фрагменты, определяя начальные и конечные смещения с помощью проверенных временем правил и стандартов форматов. Кроме того, Unblob предлагает простое в использовании API, позволяющее пользователям быстро писать собственные обработчики форматов и извлекатели, а также поддерживает динамически загружаемые плагины для расширения основной функциональности. Это делает Unblob незаменимым инструментом для тех, кто нуждается в анализе сложных, многослойных бинарных данных, содержащих сжатие, шифрование или встроенные файловые системы.
Начало работы с Unblob
Рекомендуемый способ установки Unblob — использовать pypi.org. Пожалуйста, используйте следующую команду для беспроблемной установки.
Установите библиотеку Unblob через PyPI
pip3 install unblob
Клонируйте репозиторий unblob с GitHub
git clone https://github.com/onekey-sec/unblob.git
Также возможно установить его вручную; загрузите последние файлы релиза напрямую из репозитория GitHub.Извлечение распознанных форматов с помощью библиотеки Python
Открытая библиотека Unblob включает поддержку извлечения содержимого из различных форматов файлов в приложениях Python. Библиотека поддерживает более 30 архивов, форматов сжатия и файловых систем. Пожалуйста, помните, что для использования библиотеки со всеми поддерживаемыми форматами необходимо установить все экстракторы. Пользователи могут использовать различные параметры для настройки поведения библиотеки, такие как указание каталога вывода, глубины рекурсии, уровня подробности или формата отчёта. Метод extract_chunk может использоваться разработчиками для извлечения содержимого каждого фрагмента в указанный каталог вывода. Ниже приведён пример кода, показывающий, как использовать библиотеку для извлечения содержимого в каталог вывода в приложениях Python.
Как извлечь содержимое в выходной каталог с помощью библиотеки Python?
import unblob
# Scan a file for known formats
file_path = "some_file.bin"
chunks = unblob.scan_file(file_path)
# Extract each chunk to an output directory
output_dir = "some_dir"
for chunk in chunks:
unblob.extract_chunk(chunk, output_dir)
Выполнение анализа ELF‑файлов через API Python
Библиотека с открытым исходным кодом Unblob упрощает разработчикам программного обеспечения обнаружение и извлечение ELF‑файлов из неизвестных бинарных блобов, а также определение их возможностей и функций. Библиотека поддерживает как 32‑битные, так и 64‑битные ELF‑файлы, а также различные архитектуры, такие как x86, x86_64, ARM, MIPS и PowerPC. Она также может работать с различными типами ELF‑файлов, такими как исполняемые файлы, динамические библиотеки, объектные файлы, дампы памяти и модули ядра.
Извлечение метаданных через API Python
Библиотека с открытым исходным кодом Unblob включила поддержку генерации файла метаданных в своих Python‑приложениях. Пользователи могут использовать параметр --report при запуске Unblob как инструмента командной строки. Этот параметр создаст JSON‑файл, содержащий информацию об извлечённых файлах, такую как путь, размер, тип, магическое число, энтропию и детали чанков. Пользователи могут указать имя и расположение JSON‑файла в качестве аргумента к параметру --report. Затем пользователи могут просматривать или анализировать файл metadata.json с помощью любого просмотрщика или парсера JSON.