
Frida-basierter Tracer für einfacheres Reverse-Engineering auf Android, iOS, Linux, Windows und den meisten verwandten Architekturen.
Durch die Kombination von Frida mit einer erweiterten Version von Tenet erleichtert Frinet das Studium großer Programme, die Schwachstellenforschung und die Root-Cause-Analyse auf iOS, Android, Linux, Windows und den meisten Architekturen. Blogpost auf der Synacktiv-Website
Diese Version ist eine vollständige Neufassung von synacktiv/frinet (ursprünglich ein Fork von gaasedelen/tenet).
Die alte Version findest du weiterhin im legacy-Zweig.
Dieses Projekt wurde auf der SSTIC 2026 (auf Französisch) präsentiert: Video/Folien/Paper.
Die neue Architektur basiert auf vier Komponenten:
Indexer: Ein Rust-CLI, das aus einer Trace-Datei einen optimierten Index erzeugt.Backend: Eine Rust-Crate, die spezialisierte Algorithmen zum Abfragen der optimierten Indexdatei implementiert.Backend (Python-Bindings): Eine Rust-Crate, die eine Python-Schnittstelle bereitstellt.IDA-Plugin: Eine dünne Python-Schicht, die Daten vom Backend abfragt und in die IDA-Oberfläche integriert.Auf Frida basierender Tracer: Identisch zur Legacy-Version von Frinet.
Indexer / Backend:
crates/db.Frontend:
# Build the Python bindings shared lib
apt install python3-dev
cargo build --release
cp target/release/libfrinet_db.so frontend/frinet_db.so
# Symlink (or copy) the IDA Plugin
ln -s $PWD/frontend ~/.idapro/plugins/frinet
# 1. Trace /bin/ls with frida
python tracer/trace.py spawn /bin/ls ls 0x4c00
# 2. Build an optimised index of the trace
cargo run --bin frinet --release -- index --format tenet tracer/traces/ls_xxxx.tenet ls.db
# 3. Open the trace in IDA (File > Load File > Open Frinet DB...)
cargo test
cargo install cargo-fuzz
cargo +nightly fuzz run --fuzz-dir crates/fuzz register_indexing
cargo install cargo-criterion
BENCH_DB=my.db cargo criterion