
Traceur basé sur Frida pour faciliter la rétro-ingénierie sur Android, iOS, Linux, Windows et la plupart des architectures associées.
En combinant Frida avec une version améliorée de Tenet, Frinet facilite l'étude de grands programmes, la recherche de vulnérabilités et l'analyse des causes racines sur iOS, Android, Linux, Windows et la plupart des architectures. Article de blog sur le site de Synacktiv
Cette version est une réécriture complète de synacktiv/frinet (à l'origine un fork de gaasedelen/tenet). Vous pouvez toujours trouver l'ancienne version sur la branche legacy.
Ce projet a été présenté au SSTIC 2026 (en français) : vidéo/diapositives/article.
La nouvelle architecture repose sur quatre composants :
Indexer : Un CLI Rust qui produit un index optimisé à partir d'un fichier de trace.Backend : Une crate Rust qui implémente des algorithmes spécialisés pour interroger le fichier d'index optimisé.Backend (Python bindings) : Une crate Rust qui expose une interface Python.IDA Plugin : Une fine couche de code Python qui interroge et intègre les données du backend dans l'interface d'IDA.Tracer basé sur Frida : Identique à la version legacy de Frinet.
Indexer / Backend :
crates/db.Frontend :
# Compiler la bibliothèque partagée des bindings Python
apt install python3-dev
cargo build --release
cp target/release/libfrinet_db.so frontend/frinet_db.so
# Créer un lien symbolique (ou copier) le plugin IDA
ln -s $PWD/frontend ~/.idapro/plugins/frinet
# 1. Tracer /bin/ls avec frida
python tracer/trace.py spawn /bin/ls ls 0x4c00
# 2. Construire un index optimisé de la trace
cargo run --bin frinet --release -- index --format tenet tracer/traces/ls_xxxx.tenet ls.db
# 3. Ouvrir la trace dans 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