← retour aux outils back to tools

# 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/unblob

## Overview

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

1. Recursively extract the full firmware dump

    unblob -e extracted/ firmware.bin

2. Inspect the resulting filesystem tree for credentials, keys, configs

    grep -r "password" extracted/ 2>/dev/null

3. 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 -A` or 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 -A` ou 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