精确匹配记录查询
grep 可以定位 PC、指令、地址或字符串,但不会重建某条指令处的完整寄存器状态,也不能按地址范围和时间解析内存写入。
Tenet 为指令级执行 Trace 建立索引,支持随机访问状态重建和离线分析。你可以查询任意已录制指令点的寄存器与内存,恢复实际执行过的控制流,并运行数据流、算法和平台分析。
REGISTER DIFF
ANALYSIS SIGNAL
文本搜索可以定位单条记录。寄存器状态、重叠内存写入、实际控制流和值来源都需要沿指令时间线重建。
grep 可以定位 PC、指令、地址或字符串,但不会重建某条指令处的完整寄存器状态,也不能按地址范围和时间解析内存写入。
每次查询都从头回放会使随机导航成本过高;每项分析各自执行全量扫描,还会成倍增加 IO 和解码开销。
Tenet 为指令偏移、ANCHOR、寄存器写入、内存历史和代码建立索引。同一数据模型同时支持交互式导航和确定性分析 Pass。
查询结果包括指令 ID、运行时 PC、寄存器值、指定时间点的内存内容、写入历史和调用上下文。分析结果保留到原始记录的引用。
各分析 Pass 共用 Trace 索引、重建状态和统一扫描基础设施。
通过 ANCHOR、寄存器差值和内存读写,重建指定指令点的寄存器文件与内存内容。
恢复函数、XRef、CFG、调用、返回、循环及实际执行次数。
查询寄存器定义、内存写入历史、前向传播、反向依赖和关键路径。
分析常量、指令模式、循环行为、调用图和数据流结构。
将 ObjC 消息、C API、JNI 调用、系统调用和密码学操作关联到 Trace 指令。
Pass 输出按需包含 inst_id、运行时 PC、内存访问、调用点和来源标注。
Tenet 支持十亿级指令 Trace,打开文件时无需将完整 Trace 载入内存。持久索引使后续会话不必重复承担索引构建成本。
TraceReader 使用 mmap 零拷贝访问;带索引的 zstd 分块压缩保存完整寄存器、内存和代码证据,同时支持随机读取数据块。
RocksDB 将 offset、ANCHOR、寄存器写入、内存历史与代码分列管理。首次打开的成本沉淀为持久索引,后续会话无需重新构建。
ANCHOR + diff 避免每条指令保存完整快照;自适应 checkpoint 以合理内存预算换取很短的随机状态回放窗口。
兼容 Collector 共享一次顺序 Trace 遍历,避免每个 Pass 重扫数十亿条记录;TBB 并行调度相互独立的 Pass 依赖。
全量扫描分析将紧凑二进制结果写入 RocksDB;GUI、CLI、RPC 与 MCP 的重复查询可以复用已有工作,而不是重新计算。
全局导航与结构恢复使用高速原生索引;Triton 等高成本语义引擎只在确有价值的局部范围按需启用。
处理时间、索引大小与峰值内存取决于记录密度、启用字段、压缩率、所选 Pass 和硬件。Tenet 不要求完整 Trace 常驻内存。
本地索引由交互界面、批处理命令和服务 API 共用,Pass 结果也可以缓存在同一数据库中。
在 iOS 或 Android 上使用官方 QBDITrace,或用 Frida Stalker 等兼容采集器生成相同二进制契约。
为指令偏移、ANCHOR、寄存器写入、内存历史、代码、函数与 XRef 建立持久索引。
运行确定性 Pass,完成 CFG、污点、内存搜索、算法识别、平台 API、Trace Diff 与 VM 分析。
通过 GUI 或 TUI 交互查看,通过 CLI 导出报告,或使用 RPC 和 MCP 获取结构化结果。
这些分析使用已录制的指令顺序、重建状态、内存历史和实际控制流。
识别签名或加密流程中的常量、轮循环、ARX/SPN/Feistel 语义及调用上下文。
沿寄存器与内存变换追踪输入,直到 API 调用、buffer、分支或返回值。
从可疑输出出发,恢复贡献指令、最后写入者、常量、调用及来源标注。
将 ObjC 消息、JNI/C API 拦截、系统调用和密码学操作关联回底层执行。
结合静态 hints 与动态 CFG、循环、污点和数据流证据,研究 dispatcher、handler 与虚拟状态。
比较不同输入、环境或补丁版本,定位控制流、寄存器或内存的首次分歧。
GUI / TUI 提供交互式导航;CLI / RPC 用于批处理和系统集成;MCP / WebSocket 向自动化工具(包括 LLM 客户端)提供 Trace 索引数据和 Pass 结果。
按照快速开始录制 Trace、构建本地索引,并查看第一个指令区间。