REA 逆向调查 token 成本砍半:会话复用、快照与有界读取的三层姿势【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea用 REA(Reverse Engineer Anything)让 Agent 做逆向分析时,token 消耗与上下文窗口膨胀往往同时发生。本文给出会话复用、快照缓存、有界读取三层姿势,把每次调查的成本拉回可控区间。代价从哪来逆向调查 Agent 的账单,主要由工具返回值支付,而不是模型推理。和普通代码问答对比:查一个 diff 或文档,几十行就够,上下文很安全。逆向不一样,每次工具调用都回吐符号表、反汇编、伪代码、引用关系、证据记录这类二进制事实,一次无界的字符串搜索或函数清单就能吐出上万行。这相当于对整库 grep 之后,把全文塞进模型上下文。官方文档里有个真实数字:解码一个完整的 Interface Builder 应用图通常是数 MB 级,XLD.app 示例为 6.7 MB、约 200 万 token,已经超过默认 MCP 响应预算。所以纪律可以收敛成两条总原则:能复用就不重算——会话状态和分析结果都是资产;有界搜索:只索取回答当前问题所必需的最小数据量,不做"先拉全量再看"。复用层:会话与快照动手碰目标之前,先确认这件事是不是已经付过钱——这是最便宜的一省。会话:先查状态再复用相同目标不要重新开会话,相同分析不要重复执行。动手前先查binary_session:它会告诉你当前绑定的目标、可用工具和已保留的证据。状态匹配就直接续用;调查结束后用close_binary释放 provider 资源。会话生命周期契约见 docs/mcp-contracts.md。快照缓存怎么配snapshot 是成功分析结果的缓存:目标字节、操作、参数、provider、配置全部匹配时,精确查询直接命中缓存,provider 进程都不启动,直接读回结果。CLI 里用--snapshot指定缓存文件:rea analyze /absolute/path/to/program --provider ghidra --snapshot /absolute/path/to/analysis/program.json同一个查询第二次执行即命中缓存。MCP 里,open_binary传snapshot_path原子导入快照;close_binary时传snapshot_path加overwrite: true,在释放资源前保存结果。💡 实用姿势:对同一目标做多个不同问题的调查时,共享同一份快照文件,第二个问题往往零成本命中。把每次读取关进笼子复用之后,第二层纪律作用在索取数据的环节:范围、预算、深度,每一层都有笼子。范围:显式给 root、offset、limit无界读取是最大的 token 消费者。默认姿势是索取数据时必给范围:inspect_keyed_archive显式选择root、offset、limit,返回的只是你要的那一小段;证据浏览走分页,按需翻页而不是整包打印;值追踪图按节点分页,稳定 ID 保证翻页不丢上下文。标识符方面,用 MCPcompletion做前缀补全,直接从候选里挑,省掉"先 list 全量再肉眼找"的开销。预算与深度:从保守起步,按缺口聚焦跨函数追踪最容易爆炸。trace_native_values用 budget 控制深度、反编译次数、调用点解析数、节点与边数量;节点负载上限 8 MiB,序列化上限 32 MiB。省略项被显式计数,而不是静默截断。使用原则:预算从保守值起步,只有证据出现具体缺口才扩大;结果里出现"已省略 N 项"时,先判断这些项与问题是否相关,而不是默认调大预算。深度上的默认姿势是先摘要后深挖:从默认 overview/inventory 起步,读内联 Evidence,不直接上全量反编译;围绕单一假设批量提问,返回证据留下明确缺口才扩展;维护 finding ledger,把每个结论关联到 Evidence ID、搜索边界和未解疑问,后续步骤直接引用台账,不重翻聊天记录;否定搜索(确认"某功能不存在")到达边界即停。官方工作流见 SKILL.md。开查前自检每次开查前过一遍四个问题,确认没有漏配复用与有界参数。自检项不满足时的动作查过binary_session吗?已有匹配会话就直接复用,别重开目标配了--snapshot/snapshot_path吗?同目标重复调查走缓存,避免启动 provider读取显式给了root/offset/limit?全量拉取改为分页,逐页索取追踪与解码操作有 budget 和摘要 detail?小预算、摘要起步,出现缺口再扩把这三层姿势变成习惯,你的逆向调查会又快又省。完整背景见 docs/cli.md 与 docs/native-investigation.md。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
REA 逆向调查 token 成本砍半:会话复用、快照与有界读取的三层姿势【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea用 REA(Reverse Engineer Anything)让 Agent 做逆向分析时,token 消耗与上下文窗口膨胀往往同时发生。本文给出会话复用、快照缓存、有界读取三层姿势,把每次调查的成本拉回可控区间。代价从哪来逆向调查 Agent 的账单,主要由工具返回值支付,而不是模型推理。和普通代码问答对比:查一个 diff 或文档,几十行就够,上下文很安全。逆向不一样,每次工具调用都回吐符号表、反汇编、伪代码、引用关系、证据记录这类二进制事实,一次无界的字符串搜索或函数清单就能吐出上万行。这相当于对整库 grep 之后,把全文塞进模型上下文。官方文档里有个真实数字:解码一个完整的 Interface Builder 应用图通常是数 MB 级,XLD.app 示例为 6.7 MB、约 200 万 token,已经超过默认 MCP 响应预算。所以纪律可以收敛成两条总原则:能复用就不重算——会话状态和分析结果都是资产;有界搜索:只索取回答当前问题所必需的最小数据量,不做"先拉全量再看"。复用层:会话与快照动手碰目标之前,先确认这件事是不是已经付过钱——这是最便宜的一省。会话:先查状态再复用相同目标不要重新开会话,相同分析不要重复执行。动手前先查binary_session:它会告诉你当前绑定的目标、可用工具和已保留的证据。状态匹配就直接续用;调查结束后用close_binary释放 provider 资源。会话生命周期契约见 docs/mcp-contracts.md。快照缓存怎么配snapshot 是成功分析结果的缓存:目标字节、操作、参数、provider、配置全部匹配时,精确查询直接命中缓存,provider 进程都不启动,直接读回结果。CLI 里用--snapshot指定缓存文件:rea analyze /absolute/path/to/program --provider ghidra --snapshot /absolute/path/to/analysis/program.json同一个查询第二次执行即命中缓存。MCP 里,open_binary传snapshot_path原子导入快照;close_binary时传snapshot_path加overwrite: true,在释放资源前保存结果。💡 实用姿势:对同一目标做多个不同问题的调查时,共享同一份快照文件,第二个问题往往零成本命中。把每次读取关进笼子复用之后,第二层纪律作用在索取数据的环节:范围、预算、深度,每一层都有笼子。范围:显式给 root、offset、limit无界读取是最大的 token 消费者。默认姿势是索取数据时必给范围:inspect_keyed_archive显式选择root、offset、limit,返回的只是你要的那一小段;证据浏览走分页,按需翻页而不是整包打印;值追踪图按节点分页,稳定 ID 保证翻页不丢上下文。标识符方面,用 MCPcompletion做前缀补全,直接从候选里挑,省掉"先 list 全量再肉眼找"的开销。预算与深度:从保守起步,按缺口聚焦跨函数追踪最容易爆炸。trace_native_values用 budget 控制深度、反编译次数、调用点解析数、节点与边数量;节点负载上限 8 MiB,序列化上限 32 MiB。省略项被显式计数,而不是静默截断。使用原则:预算从保守值起步,只有证据出现具体缺口才扩大;结果里出现"已省略 N 项"时,先判断这些项与问题是否相关,而不是默认调大预算。深度上的默认姿势是先摘要后深挖:从默认 overview/inventory 起步,读内联 Evidence,不直接上全量反编译;围绕单一假设批量提问,返回证据留下明确缺口才扩展;维护 finding ledger,把每个结论关联到 Evidence ID、搜索边界和未解疑问,后续步骤直接引用台账,不重翻聊天记录;否定搜索(确认"某功能不存在")到达边界即停。官方工作流见 SKILL.md。开查前自检每次开查前过一遍四个问题,确认没有漏配复用与有界参数。自检项不满足时的动作查过binary_session吗?已有匹配会话就直接复用,别重开目标配了--snapshot/snapshot_path吗?同目标重复调查走缓存,避免启动 provider读取显式给了root/offset/limit?全量拉取改为分页,逐页索取追踪与解码操作有 budget 和摘要 detail?小预算、摘要起步,出现缺口再扩把这三层姿势变成习惯,你的逆向调查会又快又省。完整背景见 docs/cli.md 与 docs/native-investigation.md。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考