
متتبّع مبني على Frida لتسهيل الهندسة العكسية على Android وiOS وLinux وWindows ومعظم البنى ذات الصلة.
من خلال الجمع بين Frida ونسخة محسّنة من Tenet، يسهّل Frinet دراسة البرامج الكبيرة وأبحاث الثغرات وتحليل السبب الجذري على أنظمة iOS وAndroid وLinux وWindows ومعظم البنى. تدوينة على موقع Synacktiv
هذه النسخة هي إعادة كتابة كاملة لـ synacktiv/frinet (كانت في الأصل fork من gaasedelen/tenet).
لا يزال بإمكانك العثور على النسخة القديمة في فرع legacy.
تم تقديم هذا المشروع في SSTIC 2026 (بالفرنسية): فيديو/شرائح/ورقة.
تعتمد البنية الجديدة على أربعة مكونات:
Indexer : واجهة سطر أوامر مكتوبة بـ Rust تُنتج فهرسًا محسّنًا من ملف التتبع.Backend : حزمة Rust تنفّذ خوارزميات متخصصة للاستعلام عن ملف الفهرس المحسّن.Backend (Python bindings) : حزمة Rust تُوفّر واجهة بايثون.IDA Plugin : طبقة رقيقة من كود بايثون تستعلم عن البيانات من الخلفية وتدمجها في واجهة IDA.متعقّب قائم على 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