CLI-Tool
onekey-sec/unblob avatar
onekey-sec/unblob

unblob: ein rekursives Extraktionswerkzeug für unbekannte Binärblobs

Extrahieren Sie Dateien aus beliebigen Containerformaten. unblob Präzise, ​​schnelle und benutzerfreundliche Extraktionssuite für binäre Blobs. unblob analysiert unbekannte binäre Blobs für über 78 Archiv-, Komprimierungs- und Dateisystemformate**, extrahiert ihren Inhalt rekursiv und schneidet unbekannte Blöcke heraus.

2.555 Sterne113 ForksPythonMIT

Auf einen Blick

Was ist das?
unblob analysiert unbekannte Binärblobs, erkennt 78+ Archiv-, Kompressions- und Dateisystemformate und extrahiert deren Inhalte rekursiv.
Für wen ist es gedacht?
Geeignet ist unblob für Teams, deren konkreter Bedarf zum README von onekey-sec/unblob passt. Nicht geeignet ist es als Beleg für Fähigkeiten, die dort nicht dokumentiert sind.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 2 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Binärblobs als verschachtelte Container parsen bei unblob

unblob ist ein Python-Werkzeug, das Dateien aus Binärblobs extrahiert, die in der Repository-Beschreibung als 'beliebige Containerformate' bezeichnet werden. Es durchsucht eine Eingabedatei nach bekannten Archiv-, Kompressions- und Dateisystemformaten, extrahiert den Inhalt und wiederholt den Vorgang mit den extrahierten Daten. Das README stellt es als genaue, schnelle und einfach zu bedienende Extraktionssuite für Firmware-Images vor und weist darauf hin, dass es ohne erhöhte Rechte auskommt und von einem normalen Benutzer verwendet werden kann.

Für onekey-sec/unblob ist dieser Punkt an konkrete Artefakte gebunden. Die README nennt dafür den Einstieg pip install unblob && unblob --report report.json sample.bin. Bei einem Test sollten Eingabe, Ausgabe, Exit-Code und Fehlermeldung getrennt festgehalten werden. Das zeigt, ob genau der dokumentierte Pfad funktioniert; es belegt keine Eigenschaften, die die Quelle nicht nennt.

Formatabdeckung und Chunk-Erkennung bei unblob

Das README listet Unterstützung für 78+ Formate auf, darunter SquashFS, JFFS2, UBI/UBIFS, ext, CPIO, ZIP, 7-Zip, gzip, XZ, LZMA, LZ4 und viele mehr. Für jeden erkannten Chunk bestimmt unblob sowohl den Start- als auch den End-Offset gemäß dem Formatstandard, was laut Projekt Fehlalarme minimiert. Daten, die keinem bekannten Format entsprechen, werden herausgeschnitten und gemeldet, wobei Null- und 0xFF-Padding automatisch erkannt werden. Für unbekannte Chunks berechnet unblob die Shannon-Entropie und die Chi-Quadrat-Wahrscheinlichkeit, was helfen kann, verschlüsselte oder komprimierte Daten zu erkennen.

unblob sollte anhand seiner eigenen Konfiguration und der im README genannten Dateien beurteilt werden. Versionen, Betriebssystem, Rechte und externe Dienste gehören zur Umgebung und dürfen nicht aus dem Projektnamen abgeleitet werden. Wenn die Dokumentation einen Wert offen lässt, bleibt er eine offene Betriebsfrage.

Rekursive Extraktion und Parallelverarbeitung bei unblob

Die Extraktion ist rekursiv: Container in Containern werden bis zu einer konfigurierbaren Tiefe verarbeitet, standardmäßig 10 Ebenen. Standardmäßig nutzt das Werkzeug alle verfügbaren CPU-Kerne, und die Ausgabe erfolgt in ein Verzeichnis, das aus dem Eingabedateinamen mit dem Suffix `_extract` gebildet wird, sofern nicht mit `-e` ein anderes Verzeichnis angegeben wird. Die CLI bietet außerdem Optionen zum Erzwingen der Extraktion, zum Festlegen der Rekursionstiefe, zum Begrenzen der Entropieanalyse, zum Überspringen von Dateien anhand eines Magic-Präfixes und zum Steuern der Anzahl der Worker-Prozesse.

Die Lizenz MIT ist für onekey-sec/unblob praktisch relevant: Sie bestimmt, unter welchen Bedingungen der Code weitergegeben oder in ein eigenes Produkt eingebunden werden darf. Der Lizenztext ersetzt keine Prüfung der Abhängigkeiten und ist keine Zusage für Support, Sicherheit oder bestimmte Leistungswerte.

JSON-Metadaten und die Python-API bei unblob

unblob kann über die Option `--report` einen JSON-Metadatenbericht mit Chunk-Offsets, Größen, Entropie, Dateibesitzer, Berechtigungen und Zeitstempeln schreiben. Dieselbe Funktionalität ist programmatisch verfügbar: Das README zeigt ein kurzes Beispiel mit `ExtractionConfig` und `process_file` aus `unblob.processing` und weist darauf hin, dass `ExtractionConfig` dieselben Optionen wie die CLI akzeptiert, einschließlich `max_depth`, `process_num`, `skip_magic`, `force_extract` und `keep_extracted_chunks`. Die vollständige API-Referenz befindet sich auf unblob.org/api.

Eine sinnvolle Erstprüfung bleibt bei unblob klein. pip install unblob && unblob --report report.json sample.bin sollte mit dem im README beschriebenen Beispiel oder einer minimalen projekttypischen Eingabe laufen. Zu beobachten sind bei diesem Projekt die dort genannten Dateien, Statuswerte, Logs oder generierten Daten. Erst ein passender Befund rechtfertigt eine weitergehende Integration.

Installationswege und externe Abhängigkeiten bei unblob

Die empfohlene Installation erfolgt mit `pip install unblob`, gefolgt von der Installation externer Extraktionswerkzeuge. Auf Ubuntu/Debian listet das README `android-sdk-libsparse-utils`, `e2fsprogs`, `p7zip-full`, `unar`, `zlib1g-dev`, `liblzo2-dev`, `lzop`, `lziprecover`, `libhyperscan-dev`, `zstd` und `lz4`; für SquashFS-Unterstützung muss separat das Paket `sasquatch` installiert werden. Das Docker-Image enthält alle Extraktoren, und das README dokumentiert auch Installationen über den apt-Paketmanager von Kali, Nix sowie den Build aus dem Quellcode mit `uv sync` und einer Rust-Toolchain. Der Quellcode-Build erfordert Python 3.10 oder neuer.

Die Materialbasis beschreibt den vorgesehenen Umfang von unblob, aber nicht jede Kombination aus Versionen, Datenmenge und Infrastruktur. Deshalb sollte ein Team die konkrete onekey-sec/unblob-Revision, die verwendeten Abhängigkeiten und die erzeugten Artefakte mit dem eigenen Einsatzfall vergleichen. Nicht dokumentierte Erwartungen bleiben unbestätigt.

Tests, Dokumentation und Beitrag bei unblob

Die Testsuite verwendet pytest, und Integrations-Testfixtures sind in Git LFS gespeichert. Das README verweist für Installation, Benutzerhandbuch, unterstützte Formate, API-Referenz und Entwicklungsleitfaden auf unblob.org. Beiträge erfolgen über Issues und Pull Requests; das Repository bittet bei der Anforderung eines neuen Formats um Hexdumps, Spezifikationslinks und Beispieldateien. Der Entwicklungsleitfaden ist in der Dokumentation verlinkt, und ein Beitragsleitfaden ist im Repository verfügbar.

Lizenz und unbelegte Behauptungen bei unblob

Das Repository ist unter der MIT-Lizenz lizenziert, Copyright (c) 2022 ONEKEY GmbH. Die Lizenz gewährt das Recht, Kopien der Software zu verwenden, zu kopieren, zu modifizieren, zu verschmelzen, zu veröffentlichen, zu verteilen, zu unterlizenzieren und zu verkaufen, sofern der Urheberrechtshinweis und der Genehmigungshinweis in allen Kopien oder wesentlichen Teilen enthalten sind. Die Software wird 'wie sie ist' ohne jegliche Gewährleistung bereitgestellt und lehnt Haftung ab. Das README nennt keine spezifischen Leistungsbenchmarks, Sicherheitsgarantien oder Support-Zusagen, sodass diese für jeden, der das Projekt bewertet, offene Fragen bleiben.

Redaktionelles Fazit

Geeignet ist unblob für Teams, deren konkreter Bedarf zum README von onekey-sec/unblob passt. Nicht geeignet ist es als Beleg für Fähigkeiten, die dort nicht dokumentiert sind. Vor dem Einsatz sollte pip install unblob && unblob --report report.json sample.bin mit einer kleinen, projekttypischen Eingabe ausgeführt werden; zu prüfen sind die konkrete Ausgabe, die Abhängigkeiten, die Rechte und die Lizenz MIT.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen