Безкоштовна бібліотека 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 незамінним інструментом для тих, хто потребує аналізу складних, багатошарових бінарних даних, що містять стиснення, шифрування або вбудовані файлові системи.

Previous Next

Початок роботи з 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‑файлів за допомогою Python API

Відкрита бібліотека Unblob спрощує розробникам програмного забезпечення виявлення та вилучення ELF‑файлів з невідомих бінарних блобів, а також ідентифікацію їхніх можливостей і функцій. Бібліотека підтримує як 32‑бітові, так і 64‑бітові ELF‑файли, а також різні архітектури, такі як x86, x86_64, ARM, MIPS та PowerPC. Вона також може працювати з різними типами ELF‑файлів, такими як виконувані файли, спільні бібліотеки, об’єктні файли, дампи пам’яті та модулі ядра.

Витягування метаданих за допомогою Python API

Відкрита бібліотека Unblob включила підтримку створення файлу метаданих у своїх Python‑додатках. Користувачі можуть використовувати параметр --report під час запуску Unblob як інструменту командного рядка. Цей параметр створить JSON‑файл, який містить інформацію про вилучені файли, таку як їхній шлях, розмір, тип, магічне число, ентропію та деталі блоків. Користувачі можуть вказати назву та розташування JSON‑файлу як аргумент до параметра --report. Потім користувачі можуть переглядати або аналізувати файл metadata.json за допомогою будь‑якого переглядача чи парсера JSON.

 Українська