rea trace 命令实战从一行字符串线索到功能实现代码的三步闭环【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea拿到一个程序想搞清楚search这个功能到底在哪段代码里实现的——手动来你得搜字符串、记地址、逐个查交叉引用xrefs即谁引用了这个地址、再反查每个引用点属于哪个函数。rea 的trace命令把这整条链路压成一次操作给它一个字符串线索它直接回给你字符串在哪、谁在用它、用它的函数是谁而且每个结论都带证据。一条 trace 命令替代四步手动操作最简可运行的形态长这样rea trace /absolute/path/to/program search --provider ghidra --json逐段拆开看trace命令名内部执行trace_feature工作流搜字面量 → 查引用 → 解析所属函数/absolute/path/to/program待分析的二进制文件绝对路径search字面量查询串也就是你手里那行字符串线索--provider ghidra指定分析引擎ghidra或hopper均可换成你环境里实际可用的那个--json以 JSON 输出方便管道处理或贴给 AI 客户端。命令注册逻辑可以看 src/cli/coreBinaryCommands.ts完整的 CLI 参考在 docs/cli.md。可复制的最小跑通路径执行前先花十秒确认引擎真的可用再走概览 → 追踪两步# 1. 确认分析引擎可用Hopper/Ghidra 至少一个 OK rea providers --json # 2. 概览分析确认引擎能识别目标 rea analyze /absolute/path/to/program --provider ghidra --json # 3. 用字符串线索发起追踪 rea trace /absolute/path/to/program search --provider ghidra --json第一条会列出各 provider 的支持状态后面两条跑完后你会看到一段 JSONmatches里是命中的字符串及其地址references里是引用它的代码位置truncated和residual_unknowns告诉你结果是否完整。输出的三个字段对应三类可信度示意输出地址为占位示例{ query: search, search_mode: literal, matches: [ { type: string, address: 0x1000f3a0, value: search } ], references: [ { target_address: 0x1000f3a0, source_address: 0x10021c44, containing_procedure: 0x10021b80 } ], truncated: false, residual_unknowns: [] }类别字段含义看到它该做什么观察到的事实matchestype/address/value直接从二进制读到的命中文本、地址与类型string 或 procedure可直接引用后续所有结论以这里的 address 为锚点推断出的结论referencestarget_address/source_address/containing_procedure由 xrefs 所属函数解析拼出的使用点 → 函数映射拿containing_procedure地址跑rea decompile用伪代码二次确认逻辑尚未解析的未知项residual_unknowns、truncatedprovider 报告引用被截断、可能存在未列出的引用明确保留不要脑补不在列表里 不存在注意 如果truncated为trueresidual_unknowns里会写明是哪个地址的引用被截断——这种情况下没找到更多引用点不等于没有其他调用者。拿到containing_procedure后用这两条命令闭合证据链rea decompile /absolute/path/to/program 0x10021b80 --provider ghidra --json rea xrefs /absolute/path/to/program 0x10021b80 --provider ghidra --json前者返回伪代码后者列出该函数的交叉引用配合matches里的地址字符串 → 使用点 → 实现逻辑就闭环了。四个真正会用到的选项--case-sensitive→ 排查ok/OK、id/ID这类短串 → 默认忽略大小写会混入无关命中开精确匹配排除误报--snapshot /absolute/path/to/analysis/program.json→ 反复查询同一个目标 → 精确命中结果直接走本地缓存不重复启动引擎快照机制细节见 docs/cli.md--queryvalue→ 线索本身以-开头时 → 避免被解析成命令行选项--provider hopper→ 目标同时被多个引擎支持时 → 显式指定跳过自动选择的歧义报错。另外一条不是选项的经验线索选得越独特越快。错误提示、网络字段这类近乎唯一的字符串比 search 这种高频词命中少、噪音低。trace 不覆盖什么下一步去哪trace只走字面量 → 引用这条静态路径它不会告诉你值在运行时如何被计算和传递动态行为也不做跨模块的数据流分析。需要更深一层时接上这两个命令rea trace-native-values构建 def-use 数据流图跟踪一个值从定义到使用rea trace-native-ui-action从 UI 动作出发联合接线与有界调用引用用法见 docs/native-investigation.md引擎本身的环境准备参考 docs/installation.md。整条工作流记三句就够analyze 打底trace 追线索decompile 和 xrefs 闭环确认。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考