
Tracer basado en Frida para facilitar la ingeniería inversa en Android, iOS, Linux, Windows y la mayoría de las arquitecturas relacionadas.
Al combinar Frida con una versión mejorada de Tenet, Frinet facilita el estudio de programas grandes, la investigación de vulnerabilidades y el análisis de causa raíz en iOS, Android, Linux, Windows y la mayoría de arquitecturas. Entrada de blog en el sitio web de Synacktiv
Esta versión es una reescritura completa de synacktiv/frinet (originalmente un fork de gaasedelen/tenet).
Todavía puedes encontrar la versión antigua en la rama legacy.
Este proyecto se presentó en SSTIC 2026 (en francés): vídeo/diapositivas/artículo.
La nueva arquitectura se basa en cuatro componentes:
Indexer: una CLI de Rust que produce un índice optimizado a partir de un archivo de traza.Backend: un crate de Rust que implementa algoritmos especializados para consultar el archivo de índice optimizado.Backend (Python bindings): un crate de Rust que expone una interfaz de Python.IDA Plugin: una capa fina de código Python que consulta e integra datos del backend en la interfaz de IDA.Tracer basado en Frida: Idéntico a la versión heredada de 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