Ffind

Wykrywanie typów plików za pomocą libmagic oraz ekstrakcja systemów plików ext/F2FS z firmware

Autor: BrownFineSecurity · BrownFineSecurity/iothackbot

Działa po konfiguracji ★ 8.0/10

Ffind — Wykrywanie typów plików za pomocą libmagic oraz ekstrakcja systemów plików ext/F2FS z firmware

Co robi ten skill

Otacza narzędzie `ffind` CLI z iothackbot do identyfikacji typów plików za pomocą libmagic i opcjonalnego wyodrębniania systemów plików ext2/3/4 lub F2FS z obrazów firmware, z wyjściem tekstowym/JSON. Uruchamia się, gdy użytkownik chce analizować blob firmware, identyfikować typy plików w katalogu lub wyodrębniać osadzone systemy plików. Wykrywanie typów działa wszędzie tam, gdzie zainstalowano libmagic; ekstrakcja jest tylko dla Linuksa i wymaga sudo oraz e2fsprogs/f2fs-tools.

Raport z testu

Sklonowano repozytorium i uruchomiono bin/ffind na żywo: --help dokładnie odpowiadał udokumentowanym flagom, a w katalogu testowym z 6 plikami zgrupował pliki według typu MIME z liczbami i wygenerował ustrukturyzowany JSON (total_files, detection_failures). Punktem odniesienia było `file`/`file --mime-type`: te same podstawowe opisy libmagic, ale płaska lista dla każdego pliku, podczas gdy ffind dodaje rekurencyjne przeszukiwanie katalogów w jednym wywołaniu, grupowanie MIME, JSON i skategoryzował device.pem jako application/x-pem-file zamiast bazowego text/plain — skromna poprawa, więc wynik ~6. Wymaga python-magic+libmagic (w przeciwnym razie błąd „python-magic not available”); główna ekstrakcja systemu plików (-e) jest tylko dla Linuksa (losetup/mount) i niemożliwa do przetestowania na macOS. Zaobserwowano błąd w dokumentacji: SKILL.md twierdzi, że `-a` przełącza między tylko artefaktami a wszystkimi typami, ale formatujący tekst zawsze drukuje wszystkie typy, więc flaga nie miała wpływu. Werdykt: konfiguracja, ponieważ narzędzie nie jest dołączone do katalogu umiejętności (wymaga całego repozytorium w PATH), a ekstrakcja wymaga sudo+e2fsprogs na Linuksie.

Testowano: 2026-07-21 · Claude Code 2.x (agent harness)

Instalacja

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.

Komendy i przykładowe prompty

  • /ffindWykrywanie typów plików za pomocą libmagic oraz ekstrakcja systemów plików ext/F2FS z firmware

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

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