
Firmware-Sicherheitsforschungsplattform, die Binäranalyse, Taint-Tracing und Emulation über IoT, Edge-KI, mobile Geräte und Robotik hinweg kombiniert.
Lade die neueste Version herunter · Changelog · Installation
Firmware Analysis Toolkit ist ein Toolkit für Sicherheitsforschung zur Untersuchung der Firmware-Sicherheit von IoT, Physical AI, Mobilgeräten und Robotik. Es wurde in erster Linie für die Schulung "Offensive IoT Exploitation" von Attify entwickelt.
Es basiert auf tatsächlicher praktischer Felderfahrung darüber, worauf es bei realen Firmware-Sicherheitsuntersuchungen wirklich ankommt.
Das Ziel von FAT ist nicht nur, ein außergewöhnliches, weltklasse Toolkit für Firmware-Sicherheitsforschung zu entwickeln, sondern auch Fachleute und Praktiker zu formen, die auf ihrem Höchstniveau arbeiten, wobei das Tool zu einer kognitiven Superkraft wird, wenn es auf bestimmte Weise genutzt wird, und gleichzeitig einfach genug ist, um von Einsteigern in diesem Bereich verwendet zu werden.
Zu den Funktionen gehören die Klassifizierung unbekannter Firmware, das Extrahieren von Dateisystemen, das Kartieren vertrauensrelevanter Codebereiche, das Verfolgen von Taint und die Koordination der QEMU-Emulation.
Lade ein Binärpaket von Releases herunter oder baue die neueste reguläre Version mit Rust 1.90 oder neuer:
git clone --branch v2.0.1 --depth 1 https://github.com/attify/firmware-analysis-toolkit.git
cd firmware-analysis-toolkit
cargo build --release --locked
cargo install --path crates/fat_cli --locked
python3 scripts/build-runtime-data-bundle.py --output ./dist/fat-data.zip
fat data install --archive ./dist/fat-data.zip
fat doctor
Unter Arch Linux oder Omarchy beginne mit den Arch-Installationsschritten für Voraussetzungspakete und optionale Tools.
One-Shot-Installer für unterstützte Hosts:
./scripts/install.sh --install-system-deps
Siehe INSTALL.md für Installer-Optionen und optionale Tools.
fat -hfat $firmware oder fat identify --file $firmwarefat new $firmwarefat extract $firmwarefat analyze $firmwarefat emulate --project $firmwarefat ./firmware.bin
fat inspect update --file ./firmware.bin --rootfs ./rootfs --reference ./older.bin
fat ./firmware.bin ist eine Kurzform für fat identify --file ./firmware.bin.
Es liefert eine kompakte Übersicht über die Identität und Struktur der Datei.
Füge --details hinzu, um unterstützende Tabellen zu erhalten.
Für rohe MCU-Images untersuche Mapping, Startvorgang, Interrupts und Hardware:
fat inspect mcu --file ./firmware.bin
fat inspect mcu --file ./firmware.bin --details
Beide Befehle unterstützen --json für den vollständigen strukturierten Analysebericht.
Die Pipeline aus dem Schnellstart, von Anfang bis Ende:
fat new ./firmware.bin
fat extract .fat-projects/firmware
fat analyze .fat-projects/firmware
fat preflight .fat-projects/firmware
fat emulate --project .fat-projects/firmware
fat r2-triage --file ./usr/sbin/httpd --json
fat taint --file ./www/cgi-bin/diag.cgi --summary
fat taint-query --file ./www/cgi-bin/diag.cgi
fat taint-cross --rootfs ./rootfs
fat taint-cross --rootfs ./rootfs --source-profile ./my-target-models.yaml --state-profile ./my-target-state.yaml
fat taint --lang shell --file ./app/init/wifi.sh --summary
fat taint --lang shell --rootfs ./extracted-rootfs --json
fat taint --lang shell --rootfs ./extracted-rootfs --source-profile ./my-target-shell.yaml --severity high
Finde Senken statisch und bereite dann Laufzeit-Hooks für dieselben Adressen vor:
fat r2-triage --file ./usr/sbin/httpd --json
fat sink-discovery --file ./usr/sbin/httpd --json > sinks.json
fat handler-table --file ./usr/sbin/httpd --json > handlers.json
fat taint --file ./usr/sbin/httpd --sink-candidates sinks.json --json > taint.json
fat instrument-hooks --from-sinks sinks.json --output hooks.yaml
fat emulate --project .fat-projects/firmware --instrument hooks.yaml
fat tree --rootfs ./rootfs --profile inventory --summary --json
fat search --rootfs ./rootfs --profile credentials -I --context 2
fat startup-map --rootfs ./rootfs --profile cloud-tls
fat crypto-census --rootfs ./rootfs
fat trust-map --rootfs ./rootfs
fat invariant query \
--fixture tests/fixtures/query/source/invariant-permission \
--rule 'Every privileged override method must call enforcePermission()'
fat patch check --help
fat verify --help