
Frida 기반 트레이서로 Android, iOS, Linux, Windows 및 대부분의 관련 아키텍처에서 리버스 엔지니어링을 보다 쉽게 수행할 수 있습니다.
Frinet은 Frida와 향상된 버전의 Tenet을 결합하여 iOS, Android, Linux, Windows 및 대부분의 아키텍처에서 대규모 프로그램 연구, 취약점 연구 및 근본 원인 분석을 용이하게 합니다. Synacktiv 웹사이트의 블로그 게시물
이 버전은 synacktiv/frinet의 완전한 재작성입니다(원래 gaasedelen/tenet의 포크). 이전 버전은 legacy 브랜치에서 찾을 수 있습니다.
이 프로젝트는 SSTIC 2026에서 (프랑스어로) 발표되었습니다 : 비디오/슬라이드/논문.
새로운 아키텍처는 네 가지 구성 요소를 기반으로 합니다 :
Indexer : 트레이스 파일에서 최적화된 인덱스를 생성하는 Rust CLI입니다.Backend : 최적화된 인덱스 파일을 쿼리하는 특수 알고리즘을 구현하는 Rust 크레이트입니다.Backend (Python bindings) : Python 인터페이스를 노출하는 Rust 크레이트입니다.IDA Plugin : 백엔드의 데이터를 쿼리하고 IDA 인터페이스에 통합하는 얇은 Python 코드 계층입니다.Frida 기반 트레이서: Frinet의 레거시 버전과 동일합니다.
Indexer / Backend:
crates/db.프런트엔드:
# 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