首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
AI 工具与工作流
发新帖
0
2
[原创]对rea这个爆火agent的深度分析
发表于: 12小时前
186
[原创]对rea这个爆火agent的深度分析
Catmeow
12小时前
186
# REA源码分析 ## 前言 <mark class="encrypted">4b4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0L8%4u0D9N6i4c8G2i4K6u0r3M7X3g2S2</mark> 这个 agent 有点神秘:172 个 MCP,明明 r2 能解决的跨平台问题,偏要加上 IDA MCP、Ghidra MCP、Hopper MCP 去解决二进制逆向,其它的我没学过就不去评价了。(MCP 先干飞 1/5 上下文,search_tool 要默认开啊肯定。) 3天就有100k的stars, 请输入文本。 ## 正文 ### 1. skill 部分 **这套 skill 的骨架是整个仓库里质量最高的东西——progressive disclosure、路由表、证据纪律、可复制的 recipe 全部在线。额但是这个作者搞的几乎全是软约束** #### 1.1 可以借鉴的地方 结构上 `SKILL.md`(237 行)只做路由,把细节拆成 6 篇 reference,并在结尾(`SKILL.md:219-230`)明确"只读相关的那篇"。这是 Anthropic 推荐的 skill 范式,很多 skill 连 frontmatter 的 negative trigger 都不写,它写了(`SKILL.md:3`:`Skip REA for ordinary source-repository architecture analysis`)。 真正有价值的是三块: - **路由表**(`SKILL.md:41-101`):给定 target 类型 → 该调哪个第一个工具。ASAR→`analyze_javascript_application`、APK→`inspect_android_package`、firmware→`inspect_firmware_regions`、Go→`inspect_go_binary`……对 agent 来说这是最省事的部分。 - **证据纪律**:observation / inference / unknown 三分,引用 Evidence ID,静态不得冒充运行时(`runtime-observation.md:11-13`),"缺失 ≠ 等价"(`SKILL.md:173-176`)。这是它区别于"让模型瞎编"的核心。 - **可复制的 recipe**:`inspect_analysis_view` 的 page/item JSON 模板带占位 ID(`javascript-applications.md:62-86`)、DOS COM entry `0x10100`(`native-and-artifacts.md:169`)、`@rpath` 解析、Codex per-tool approval 的 TOML(`connection-and-recovery.md:80-86`)、恢复决策表(`connection-and-recovery.md:14-21`)。这些是从血里熬出来的,抄得动。 #### 1.2 但它写成了"文档",不是"skill" - **体量本身就是在复制它自己抱怨的病。** 全套约 1003 行,`SKILL.md` 一激活就吃 237 行再加至少一篇 reference。它和 172 个工具描述叠加,正是它在 `installation.md:202` 承认的 `autocompact is thrashing` 的来源之一。用文档解决"文档太多",循环了。 - **满篇 hedge,说明它自己不信自己的版本。** `when advertised` / `when the connected schema advertises` / `when advertised by the connected server`(`SKILL.md`、`javascript-applications.md:13,27,35`)。skill 本应对"当前安装版本"是权威,结果它教 agent 运行时去探测能力——根因就是 main 与 npm release 的 schema 分裂。 - **冗余。** `binary_session` 的 `tool_availability` 段落在 `SKILL.md:121-131` 和 `native-and-artifacts.md:62-76` 几乎逐字重复;oversized-response 恢复在 `SKILL.md:147-171`、`javascript-applications.md:112-128`、`evidence-workflows.md:3-12` 出现三遍。reference 之间重复尚可(各读各的),但 `SKILL.md` 正文复制 reference 纯烧 token。 - **双写漂移。** 它是 `src/contracts/` 的散文副本,靠满篇 hedge 掩盖不同步。`metadata.version: "39"` 这个手动修订号,本身就是"内容反复改、但没人保证和代码一致"的证据。 #### 1.3 工作流是软约束,不是硬约束 没有在代码里面强行让大模型提交证据和结果, 塞了一个skill然后全靠自觉可还行。 #### 1.4 "reverse anything":广度真、深度假 `README.md:153-171` 那张能力表,一行一行读 requirements 列,规律: | 目标 | 真正干活的是谁 | |---|---| | Native binaries | Hopper / Ghidra / IDA(自带) | | Offline ELF layout | caller-supplied pwntools,**仅 Linux x64** | | WASM | caller-supplied WABT 1.0.42 | | EVM | 本地 raw/hex carrier,**仅 Linux x64**,EVMole | | Recorded crashes | caller-supplied pwntools,**仅 Linux x64** | | Firmware | Binwalk / Unblob,**仅 Linux** | | Android APK | Headless JADX + 完整 JDK | | Android devices | caller-supplied adb | | JEB projects | caller-started JEB MCP | | Android resources | caller-supplied Apktool | | HAR captures | mitmdump(Linux) | | Websites | Chrome 系浏览器 | | Process behavior | Linux/macOS 的 native PTY | | Go | 内置,但只做元数据 | | .NET | 内置,但**静态 only** | | Packages / resources | 内置解析 | 全部依靠外部助力而且还塞了一堆重复的东西是真的有点猎奇。 再叠加 `docs/windows-ghidra-p0.md:10`(`experimental … read-only P0 boundary`)、IDA 只读、`docs/roadmap.md:11-18` 里"扩展原生架构/类型/间接调用验证、打通静态与运行时"这些**还没做完的事**——所谓 anything,准确翻译是: > **anything,前提是你本来就已经装好了对应的专业工具、目标又恰好在它验证过的平台上、而且你只问符号/元数据这一层的问题。** 所以 `reverse anything` 不算纯标题党(广度是真的,文件类型覆盖确实多),但它是**典型的标题党式营销**:用"anything"盖住了"BYO 引擎 + 平台窄 + 深度浅"这三条脚注。它真正卖的不是反编译引擎,而是一套**跨工具的统一证据/权威协议**——这个定位值得说清楚,但绝不是"reverse anything"。 ### 2. MCP 部分:172 个工具,先干飞 1/5 上下文 `installation.md:198-200` 是项目自己给的数据: - **172 个工具**,默认 profile 的 `tools/list` 约 **496 KB ≈ 120k tokens**;compact profile 约 **290 KB ≈ 68k tokens**。 - 项目在 `installation.md:200` 亲口承认:`Compaction cannot remove tool definitions`;`installation.md:202` 承认会触发 Claude Code 的 autocompact thrashing。 也就是说,**一个逆向工具,先把自己的工具清单变成了上下文杀手。** 更要命的是它没打算自己解决:deferred loading / tool search 是**客户端的功能**,不是 REA 的。仓库里所有 `tool_search` 都出现在验证脚本里(`scripts/verify-native-agent-client.mjs:301-302`:`Hermes native deferred tool_search must be available`),服务端 `capabilities: {}`、没有 `tools/list_changed`、172 个工具无条件全注册。它唯一的瘦身手段是 compact 广告 schema(`EvidenceMcpServer.ts:70-112`),**工具一个都没少**。 所以"search 默认要开"这件事,在 REA 这边根本不存在开关——因为服务端压根没实现,全靠客户端施舍。 ### 3. provider 部分:真的假的3个重复mcp r2 本身就能覆盖多架构(x86/ARM/MIPS/PPC/…)的反汇编,配 r2ghidra 还能反编译,交叉引用、patch、调试也都在一个进程里。REA 的路线是反过来的(可能大佬的思维跟我不太一样): - **Hopper(商业、macOS 为主)+ Ghidra(重型、headless 桥接、P0 只读)+ IDA(只读、需要 mrexodia/ida-pro-mcp)** 三套并存,各自一套适配器、协议、生命周期、schema; - 外加 JADX、Apktool、JEB、adb、WABT、EVMole、binwalk、unblob、pwntools、pwndbg/GDB、mitmdump、Chrome 一大串 `caller-supplied`; 这套 provider 矩阵就是 172 个工具的来源:**几十种底层能力 × 每个都被"证据契约 + 客户端适配"放大成独立端点**。为了证明每个客户端都接好,`scripts/` 里躺着一排 `verify-claude-client / verify-qwen-client / verify-opencode-client / verify-omp-client / verify-gemini-client / verify-deepseek-client / verify-grok-client ...`。 代价是:36 个运行时依赖、178 个 npm script、1568 个 TS 文件、**32 万行**代码、**915 个测试文件**(占源文件 58%)。一个"调用别人工具"的项目,一半以上的代码在描述"我返回的证据长什么样"。 ### 4. 源码部分 `src/` **1568 个文件、323,724 行**,`tests/` **713 个文件、153,433 行**,`scripts/` 258 个文件、53,919 行,`bridge/` 30 个文件、8,998 行。加起来近 54 万行,去包装一堆本来自带的反编译工具。 ### 5. 总结 - **skill**:真的不打算搞成硬约束吗 - **MCP**:172 个工具、120k tokens,服务端不做 search 激活,把问题甩给客户端。 - **provider**:该用 r2 一把梭的地方,堆成了 Hopper+Ghidra+IDA 三套胶水(其实可以放设置里的)。 - **源码**:工程质量上游、工程判断下游;54 万行里很多是过度设计与适配器重复。 - **本质**:它不是逆向引擎,是**套在一堆自带工具外面的统一证据/权威协议层**。这个价值是真的(溯源、权限边界、unknown 显式化),但它用"reverse anything"的口号、172 个端点和 32 万行,把这点真价值埋了。 ### 碎碎念 (2026-10-12): | 指标 | 数值 | |---|---| | Stars | **128,205** | | Forks | **28,706** | | Watchers | **399** | | Open issues | 234 | | 创建时间 | 2026-04-14 | | 最后 push | 2026-10-12 | | README 自称 | **110,000 stars** | > 宣传的力量还是太强大了, 半成品能有100k+ stars说不羡慕绝对是假话。一堆造神的、乱吹的哪里都有, 不吃流量会死是吗。
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
最后于
12小时前 被Catmeow编辑 ,原因:
收藏
・
0
点赞
・
2
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
Midsw
+1
期待更多优质内容的分享,论坛有你更精彩!
5小时前
阿疯啊
为你点赞!
10小时前
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
4
)
mb_lpexkabw
雪 币:
5
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
3
粉丝
0
关注
私信
mb_lpexkabw
2
楼
正文是AI分析的吗
8小时前
0
啊你好哇123
雪 币:
807
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
380
粉丝
0
关注
私信
啊你好哇123
3
楼
r2分析文件有问题分析不了了现在不知道咋回事分析了半天什么也没有
8小时前
0
Mr.ghost
雪 币:
743
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
8
粉丝
0
关注
私信
Mr.ghost
4
楼
实际使用确实很水, 缺乏解混淆能力, 上点强度就不行, 技术深度完全不够看, 不知道为什么涨星那么猛
5小时前
0
Midsw
雪 币:
28
活跃值:
(1415)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
136
粉丝
1
关注
私信
Midsw
5
楼
我就不明白莫名其妙为什么突然火了,很简单的一个skills 而且写的也不咋滴~而且里面浪费token的比较多
5小时前
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
Catmeow
5
发帖
53
回帖
10
RANK
关注
私信
他的文章
[原创]对rea这个爆火agent的深度分析
171
[原创] 这个claude code怎么这么坏。肯定不是改版之后的。
154
[原创]第10题wp
56
[原创] 一个自带压缩的ida mcp
1601
[原创]如何给 LLM 解混淆提一提效率和准确度(理论向) - p1
1243
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部