unblob
Extrait de manière récursive des blobs binaires imbriqués et de format inconnu, quels qu'ils soient : images firmware, systèmes de fichiers, archives compressées, comme alternative moderne à binwalk. Extracts arbitrary nested and unknown binary blobs — firmware images, filesystems, compressed archives — recursively, as a modern alternative to binwalk.
↗ https://github.com/onekey-sec/unblobOverview
unblob is a firmware/blob extraction tool designed to recursively unpack whatever it finds — filesystem images, compressed archives, bootloaders, chained/nested formats — without needing to know the container format up front. It’s built to handle the messy reality of firmware images (multiple concatenated filesystems, proprietary headers, padding, unknown magic bytes) better than older signature-matching tools, making it a strong first step when reverse engineering IoT/embedded firmware.
Common Usage
Extract everything found in a firmware image, recursively
unblob firmware.bin
Specify an output directory
unblob -e extracted/ firmware.bin
Limit recursion depth (useful on deeply nested archives)
unblob -d 3 firmware.bin
Verbose output showing each chunk identified and extracted
unblob -v firmware.bin
Run inside Docker (isolates untrusted extraction logic)
docker run --rm -v $(pwd):/data ghcr.io/onekey-sec/unblob:latest /data/firmware.bin
Firmware Triage Workflow
- Recursively extract the full firmware dump
unblob -e extracted/ firmware.bin
- Inspect the resulting filesystem tree for credentials, keys, configs
grep -r "password" extracted/ 2>/dev/null
- Pull binaries out for further reversing
find extracted/ -type f -executable
Tips
- unblob’s chunk-based extraction handles concatenated/appended images (e.g. bootloader + squashfs + jffs2 in one .bin) far better than tools that only look for the first known signature.
- Runs extraction logic inside a sandboxed environment by design — safer than binwalk when handling untrusted/malicious firmware.
- Follow up with
binwalk -Aor manual entropy analysis on any chunk unblob couldn’t identify.
Help / Man page
usage: unblob [-h] [-e EXTRACT_ROOT] [-d DEPTH] [-v] [-q]
[--report FILE] [-P PROCESS_NUM] FILE [FILE ...]
positional arguments:
FILE File(s) to extract
options:
-e, --extract-to DIR Extraction output directory
-d, --depth N Maximum recursion depth
-v, --verbose Verbose output
-q, --quiet Suppress non-error output
-P, --process-num N Number of parallel extraction processes
--report FILE Write a JSON report of extracted chunks
--skip-extraction Only identify chunks, don't extract them
Vue d’ensemble
unblob est un outil d’extraction de firmware/blobs conçu pour décompresser récursivement tout ce qu’il trouve : images de systèmes de fichiers, archives compressées, bootloaders, formats chaînés/imbriqués, sans avoir besoin de connaître le format du conteneur à l’avance. Il est conçu pour gérer la réalité chaotique des images firmware (plusieurs systèmes de fichiers concaténés, en-têtes propriétaires, padding, magic bytes inconnus) mieux que les anciens outils de reconnaissance par signature, ce qui en fait une bonne première étape lors du reverse engineering de firmware IoT/embarqué.
Utilisation courante
# Extraire tout ce qui est trouvé dans une image firmware, récursivement
unblob firmware.bin
# Spécifier un répertoire de sortie
unblob -e extracted/ firmware.bin
# Limiter la profondeur de récursion (utile sur des archives profondément imbriquées)
unblob -d 3 firmware.bin
# Sortie verbeuse montrant chaque chunk identifié et extrait
unblob -v firmware.bin
# Lancer dans Docker (isole la logique d'extraction non fiable)
docker run --rm -v $(pwd):/data ghcr.io/onekey-sec/unblob:latest /data/firmware.bin
Workflow de triage de firmware
# 1. Extraire récursivement le dump de firmware complet
unblob -e extracted/ firmware.bin
# 2. Inspecter l'arborescence de fichiers résultante pour des credentials, clés, configs
grep -r "password" extracted/ 2>/dev/null
# 3. Extraire les binaires pour du reversing plus poussé
find extracted/ -type f -executable
Conseils
- L’extraction par chunks d’unblob gère les images concaténées/ajoutées (par exemple bootloader + squashfs + jffs2 dans un seul .bin) bien mieux que les outils qui ne cherchent que la première signature connue.
- Exécute la logique d’extraction dans un environnement sandboxé par conception : plus sûr que binwalk pour traiter des firmwares non fiables/malveillants.
- Poursuivre avec
binwalk -Aou une analyse d’entropie manuelle sur tout chunk qu’unblob n’a pas pu identifier.
Aide / Page de manuel
usage: unblob [-h] [-e EXTRACT_ROOT] [-d DEPTH] [-v] [-q]
[--report FILE] [-P PROCESS_NUM] FILE [FILE ...]
positional arguments:
FILE File(s) to extract
options:
-e, --extract-to DIR Extraction output directory
-d, --depth N Maximum recursion depth
-v, --verbose Verbose output
-q, --quiet Suppress non-error output
-P, --process-num N Number of parallel extraction processes
--report FILE Write a JSON report of extracted chunks
--skip-extraction Only identify chunks, don't extract them