ltlly/MikuTrace

GitHub: ltlly/MikuTrace

面向 Android ARM64 真机的指令级动态追踪与分析工具,通过 Frida 采集运行时执行路径并提供多维查询、污点追踪和 AI 友好接口,补充静态反编译工具无法获取的动态语义信息。

Stars: 21 | Forks: 7

# traceMiku 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/ --json # 启动 Web UI ./tracemiku web traces/run1/calls/ --port 18900 需要 Binary Ninja HLIL/CFG 时传入目标 SO: ./tracemiku web --so /path/to/libtarget.so --port 18900 ## 面向 AI 的查询 CLI 是首选自动化入口,输出为结构化 JSON: ./tracemiku query resolve --so libtarget.so --off 0x1234 ./tracemiku query indirect-targets --so libtarget.so --off 0x1234 ./tracemiku query reg-at --reg x0 --so libtarget.so --off 0x1234 ./tracemiku query mem-export --so libtarget.so --off 0x2000 --len 0x100 ./tracemiku query coverage --fn trace:F0 ./tracemiku query backward-taint --from 1000 --reg x0 ./tracemiku dec --summary 完整命令以 `./tracemiku --help` 和子命令 `--help` 为准。已有专用命令时不要使用通用 `api`,也不要仅为查询而启动 Web server。 ## 分析边界 `MemShadow` 只对观测到的字节负责。来源 `w`、`r`、`x`、`i` 分别表示 trace store、 trace load、外部写和初始快照;`??` 表示未知,绝不能当作零。详情见 [内存完整性设计](docs/memory-completeness-design.md)。 TraceIR、本地 LLIL -> MLIL -> HLIL 和 trace 增强反编译管线均为当前能力,区别见 [反编译架构](docs/trace-decompiler-design.md)。Trace 目录及二进制格式见 [Trace 数据契约](docs/PER_CALL_TRACE_DESIGN.md)。 ## 开发与测试 make test-fast # Python 检查 + Rust core/CLI make test-v2 # Rust 全工作区 + 前端构建 + CLI/API 一致性 npm --prefix tracer run typecheck make test-device # 需要 Android 设备 工程规则见 [AGENTS.md](AGENTS.md),当前路线图见 [TODO.md](TODO.md),性能基线见 [BENCHMARKS.md](BENCHMARKS.md)。
标签:Android, ARM64, Docker支持, DSL, Frida, MITM代理, 动态追踪, 可视化界面, 污点追踪, 逆向分析, 逆向工具, 通知系统