Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ffs — F*ck file system - CLI-Dateisuche-Tool, das den OS-Kernel umgeht und deine Festplatte direkt liest | Kitploit
Tools/GitHubGitHub/dmtrkovalenko/ffs
FestplattenforensikAllgemeine DienstprogrammeScripting & AutomatisierungForensikDatenwiederherstellungDigitale Forensik
GitHubdmtrkovalenko/ffs

ffs

F*ck file system - CLI-Dateisuche-Tool, das den OS-Kernel umgeht und deine Festplatte direkt liest

Repository anzeigen
17478vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

FFS - F* Dateisystem

Dies ist ein CLI-Tool zum Durchsuchen von Dateien (wie grep), das nicht den OS-Kernel zum Lesen von Dateien verwendet, sondern deine Festplatten direkt liest. Es ist praktisch nutzlos, aber wahnsinnig cool.

Das sind nur ~1,5k Zeilen C-Code, die:

  • benötigt sudo nur beim Lesen eines Raw-Device-Knotens (z. B. /dev/rdisk*); die Suche in einer Image-Datei benötigt keine erhöhten Rechte
  • erfordert das Deaktivieren des SIP-Schutzes, um auf der Haupt-MacOS-Festplatte zu laufen
  • kann einige kürzliche Dateischreibvorgänge übersehen (erfordert einen manuellen sync-Aufruf)
  • kann möglicherweise keine Verzeichnisbäume auf einem stark volatilen Dateisystem durchsuchen, während andere Systemkomponenten Dateien im OS schreiben
  • funktioniert nur für Dateisysteme, die manuell in diesem Projekt implementiert wurden

aber gleichzeitig

  • liest direkt Blöcke von deinen Festplatten
  • umgeht den VFS-/gepufferten read()-Pfad und liest das Blockgerät stattdessen direkt per pread
  • progressiv schneller als ripgrep (je mehr Dateien du durchsuchen musst, desto schneller ist es im Vergleich zu ripgrep)
  • kann ungemountete Volumes durchsuchen – es analysiert einfach binäre Blobs
  • erkennt und überspringt Binärdateien
  • verteilt die Last über alle Kerne per openmp

Für die tatsächlich funktionierende schnelle Dateisuche schau dir mein Projekt fff an – es übertrifft ripgrep deutlich, ohne sudo zu benötigen.

Unterstützte Dateisysteme

Unter Linux ist so ziemlich jedes Dateisystem einfach zu implementieren

Ext4

./fs/ext4.c

Dies ist das am einfachsten zu unterstützende Dateisystem: Es ist ein Journaling-Dateisystem, das direkt an Ort und Stelle schreibt (kein Copy-on-Write). Daher ist es für ffs meistens das beste Dateisystem. Manchmal kann es vorkommen, dass ffs einige kürzliche Aktualisierungen der Dateien nicht sieht. Das kann passieren, wenn der Kernel kürzliche Aktualisierungen im Cache hält und das Schreiben auf die Festplatte verzögert. Du kannst die Synchronisierung erzwingen mit

root@kitploit:~
sync

Btrfs

./fs/btrfs.c

Das B-Baum-Dateisystem ist deutlich komplizierter, ist eine effizientere Dateispeicherung und bringt eine zusätzliche Einschränkung mit sich:

Wenn eine beliebige Datei in deinem Dateisystem aktualisiert wird, muss auch der gesamte Superblock aktualisiert werden. Das bedeutet: Wenn ffs den Superblock (den High-Level-B-Baum) liest und der Kernel danach den Baum aktualisiert, wird der gesamte Lesevorgang ungültig.

Das lässt sich mit fsfreeze umgehen oder durch Erstellen eines separaten, abgetrennten Volumes.

Apfs (MacOS)

./fs/apfs.c

APFS ist ein proprietäres Dateisystem von Apple, das per Reverse Engineering nachgebaut wurde und auch hier unterstützt wird. Allerdings hat Apple seine Sicherheitsrichtlinien erheblich verschärft.

Du wirst ffs ohne Deaktivierung von SIP nicht auf deiner Hauptfestplatte ausführen können

SIP – System Integrity Protection – ist eine spezielle Sicherheitsfunktion, die jeglichen Zugriff auf den Superblock der Hauptfestplatte selbst für Root-Benutzer verbietet. Du kannst sie nicht einmal mit sudo umgehen; du musst diese Funktion deaktivieren (falls du Projekte wie yabai verwendest, ist sie möglicherweise bereits deaktiviert).

Es gibt eine Möglichkeit, ffs auf dem Apple-Dateisystem zu testen, ohne deine Hauptfestplatte anzufassen: Du kannst rohe .dmg-Dateien ohne erhöhte Rechte durchsuchen (ja, die App-Installer sind einfach abgetrennte Volumes). Mit ffs musst du nichts mounten, du kannst einfach einen Pfad zu den rohen Bytes eines Volumes zusammen mit dem Dateisystemtyp angeben:

root@kitploit:~
ffs "<QUERY>" /path/to/volume.dmg apfs

Suchen in abgetrennten Volumes

Da ffs Bytes direkt liest, kannst du damit beliebige abgetrennte Volumes durchsuchen, ohne sie in das Dateisystem einzuhängen. Zum Beispiel das Lesen von .iso- oder .dmg-Dateien.

Geschwindigkeit

Das ist der lustigste Teil – ffs hat keinen Zugriff auf den VFS-/Kernel-Dateisystemcache. Deshalb ist es in kleineren (oder bereits gecachten) Verzeichnissen langsamer, wird aber progressiv schneller, sobald der Cache erschöpft ist und dein Kernel den tatsächlichen Festplattenzustand lesen muss.

Warum? Genau um zu beweisen, dass der Kernel-VFS ab einem bestimmten Punkt ein Overhead wird.

Dies ist das Suchergebnis, das ffs mit ripgrep auf einem mit btrfs gemounteten Laufwerk vergleicht. Beachte, dass ripgrep einen weitaus fortschrittlicheren auf SIMD basierenden Matcher und File-Walker verwendet, während ffs nur ~1,8k Zeilen C-Code ist.

root@kitploit:~
[repos — 631k files]
  ffs |####                                              | 5.505s
  rg  |###                                               | 4.813s

[dev — 1.50M files]
  ffs |############                                      | 18.413s
  rg  |#################                                 | 25.673s

[home — 3.25M files]
  ffs |########################                          | 36.205s
  rg  |##################################################| 74.690s

Die für ripgrep verwendeten Flags sind -F --no-heading -H -n --no-ignore --hidden --one-file-system --no-messages – wodurch dieselben Ergebnisse wie bei ffs ausgegeben werden.

Projekt kompilieren

Um das Projekt zu kompilieren, benötigst du nur libzstd für btrfs, openmp in deiner pkg-config, und dann einfach:

root@kitploit:~
make ffs
ffs --help
Tool herunterladen