终端界面
在 SSH 或无图形会话的机器上使用 TUI:
./tenet /path/to/trace.bin不带分析或服务类参数时,Tenet 默认进入交互式 TUI。它与 Desktop 共享后端分析语义和持久化状态,但具体操作入口和覆盖范围不完全相同。
终端布局提供指令、寄存器、内存、调用栈、函数、字符串、线程、断点和 Hex Dump 视图。Goto、搜索、书签、XRef 导航和污点导航均作用于共享的 inst_id 时间轴。
常用操作:
| 动作 | 按键/命令 |
|---|---|
| 打开 Analysis Results | A |
| 下一个/上一个 XRef | x / X |
| 下一条/上一条污点指令 | ] / [ |
| 运行前向污点 | t |
| 运行反向污点 | B |
| 运行循环分析 | O |
| 切换 Hex Dump | H |
| 搜索指令/反汇编 | / |
| 运行命名 Pass | :pass <name> |
| 列出 Pass | :passes |
| 启动分析流程 | :analyze |
当前构建会显示完整按键图例;若终端或版本调整映射,以界面图例为准。
线程面板(多线程 Trace)
Section titled “线程面板(多线程 Trace)”对多线程录制的 trace,Thread 面板列出每个线程及其指令数。Enter 切换线程选中态;指令视图经 thread_filter pass 过滤到选中集合。XThread 面板展示跨线程数据流——写者线程与读者线程之间经共享内存的交接,按地址聚合。
Analysis Results
Section titled “Analysis Results”按 A 打开两级结果浏览器:
- 目录层: 显示 Pass 类别、状态、进度和单行摘要。
Enter运行未开始/失败的 Pass,或打开已完成结果;R强制重跑。 - 详情层: 展示 CFG 块、模式命中、ObjC 消息、搜索结果、VM handler 等结构化条目。对带指令位置的条目按
Enter跳转,Esc返回目录。
每个 catalog Pass 在 TUI 中都有可浏览结果。参数较多的查询通常更适合命令或 CLI,但结果仍进入同一详情浏览器。
远程会话建议
Section titled “远程会话建议”- 终端应足够大,以同时显示时间轴和状态面板。
- 首次索引完成前不要断开。
- 跨会话保留 Trace 文件旁的
<trace-file>.tenet/持久化目录。 - 关闭前添加书签;光标与书签会持久化。
- 长时间批量导出应使用 CLI,避免终端渲染参与。