Ffind

Détection de type de fichier via libmagic et extraction de systèmes de fichiers ext/F2FS pour firmware

par BrownFineSecurity · BrownFineSecurity/iothackbot

Fonctionne avec configuration ★ 8.0/10

Ffind — Détection de type de fichier via libmagic et extraction de systèmes de fichiers ext/F2FS pour firmware

Ce que fait

Encapsule l'outil CLI iothackbot `ffind` pour identifier les types de fichiers via libmagic et extraire optionnellement les systèmes de fichiers ext2/3/4 ou F2FS des images de firmware, avec sortie texte/JSON. Se déclenche lorsque l'utilisateur souhaite analyser un blob de firmware, identifier des types de fichiers dans un répertoire, ou extraire des systèmes de fichiers embarqués. La détection de type fonctionne partout où libmagic est installé ; l'extraction est Linux-only et nécessite sudo plus e2fsprogs/f2fs-tools.

Rapport de test

Cloné le dépôt et exécuté bin/ffind en direct : --help correspondait exactement aux drapeaux documentés, et sur un répertoire de test de 6 fichiers, il a regroupé les fichiers par type MIME avec des comptes et émis du JSON structuré (total_files, detection_failures). La référence était `file`/`file --mime-type` : mêmes descriptions libmagic sous-jacentes mais une liste plate par fichier, tandis que ffind ajoute une exploration récursive de répertoire en un seul appel, un regroupement MIME, du JSON, et a classé device.pem comme application/x-pem-file vs la référence text/plain — une amélioration modeste, donc sortie ~6. Nécessite python-magic+libmagic (erreurs "python-magic not available" sinon) ; l'extraction de système de fichiers principale (-e) est Linux-only (losetup/mount) et non testable sur macOS. Bug de documentation observé : SKILL.md affirme que `-a` bascule entre les artefacts uniquement et tous les types, mais le formateur de texte imprime toujours tous les types, donc le drapeau n'a eu aucun effet. Verdict setup car l'outil n'est pas inclus dans le répertoire de la compétence (nécessite le dépôt entier sur PATH) et l'extraction nécessite sudo+e2fsprogs sur Linux.

Testé le: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/BrownFineSecurity/iothackbot.git /tmp/ffind-src
mkdir -p ~/.claude/skills
cp -R /tmp/ffind-src/skills/ffind ~/.claude/skills/ffind
# The SKILL.md invokes the `ffind` CLI, which is NOT inside the skill dir — it lives in the cloned repo.
# Put it on PATH and install deps to actually run it:
#   export PATH="/tmp/ffind-src/bin:$PATH"   # (bin/ffind adds tools/ to sys.path; keep the repo, don't delete /tmp/ffind-src)
#   pip install python-magic colorama
#   macOS: brew install libmagic   |   Debian/Ubuntu: apt-get install libmagic1
# Usage: ffind <path> [-a] [-v] [--format text|json|quiet]
# Extraction (ffind <path> -e) is Linux-only: needs sudo + losetup/mount + e2fsprogs (ext) / f2fs-tools (F2FS).
# Name collision: The Sleuth Kit also ships /usr/bin/ffind — check `ffind --help` shows --extract/--format, else call bin/ffind by full path.

Commandes et exemples de prompts

  • /ffindDétection de type de fichier via libmagic et extraction de systèmes de fichiers ext/F2FS pour firmware

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • Identify file types inside this firmware dump
  • Extract the ext4 filesystem from this image
  • Find embedded F2FS partitions in this firmware file