traceMiku 是面向 Android 真机 ARM64 的指令级动态追踪和运行时分析工具。它记录真实 执行路径,并提供 CFG、调用树、寄存器与内存查询、污点追踪、数据来源、密码特征扫描、 本地三层 IL 和 Web 交互分析。
项目不试图替代 IDA、Ghidra 或 Binary Ninja。静态工具负责完整代码结构,traceMiku
通过统一的 (SO, 静态偏移) 坐标补充真实跳转目标、运行时值、解密后内存和跨函数
数据来源。
tracer/ Frida 设备端采集器
rust/crates/tracemiku-core/ 分析语义和数据模型
rust/crates/tracemiku-cli/ JSON CLI
rust/crates/tracemiku-server/ Axum API 与静态站点
frontend/ Solid Web UI
tools/hooks/ 目标相关 JSON 配置
examples/ 示例配置与算法验证
docs/ 当前契约和专题指南
- Python 3.11+ 与
uv - Rust 工具链由
rust/rust-toolchain.toml固定 - Node.js 与 npm
- 真机采集需要 adb、root 和 Frida 17.x
安装前端和采集器依赖:
npm --prefix frontend install
npm --prefix tracer install
npm --prefix tracer run build_agent.js 是默认采集器,由 tracer/src/ 编译生成;仓库内的
agent_cmodule_v5.js 只用于 --mode legacy 回退。
# 环境诊断
./tracemiku doctor --pkg com.example.app
# 采集指定导出函数
./tracemiku trace --pkg com.example.app --so libtarget.so \
--method nativeFn --out traces/run1
# 不启用 Stalker 的轻量调用探测
./tracemiku probe --pkg com.example.app --so libtarget.so --duration 10
# 查看采集结果
./tracemiku list traces/run1 --json
./tracemiku info traces/run1/calls/<call_dir> --json
# 启动 Web UI
./tracemiku web traces/run1/calls/<call_dir> --port 18900需要 Binary Ninja HLIL/CFG 时传入目标 SO:
./tracemiku web <call_dir> --so /path/to/libtarget.so --port 18900CLI 是首选自动化入口,输出为结构化 JSON:
./tracemiku query <call_dir> resolve --so libtarget.so --off 0x1234
./tracemiku query <call_dir> indirect-targets --so libtarget.so --off 0x1234
./tracemiku query <call_dir> reg-at --reg x0 --so libtarget.so --off 0x1234
./tracemiku query <call_dir> mem-export --so libtarget.so --off 0x2000 --len 0x100
./tracemiku query <call_dir> coverage --fn trace:F0
./tracemiku query <call_dir> backward-taint --from 1000 --reg x0
./tracemiku dec <call_dir> --summary完整命令以 ./tracemiku --help 和子命令 --help 为准。已有专用命令时不要使用通用
api,也不要仅为查询而启动 Web server。
MemShadow 只对观测到的字节负责。来源 w、r、x、i 分别表示 trace store、
trace load、外部写和初始快照;?? 表示未知,绝不能当作零。详情见
内存完整性设计。
TraceIR、本地 LLIL -> MLIL -> HLIL 和 trace 增强反编译管线均为当前能力,区别见 反编译架构。Trace 目录及二进制格式见 Trace 数据契约。
make test-fast # Python 检查 + Rust core/CLI
make test-v2 # Rust 全工作区 + 前端构建 + CLI/API 一致性
npm --prefix tracer run typecheck
make test-device # 需要 Android 设备工程规则见 AGENTS.md,当前路线图见 TODO.md,性能基线见 BENCHMARKS.md。