GitHub 周刊第 51 期 | REA 让 Agent 学会逆向,七年前开源的 Ghidra 也跟着上了周榜

本期 5 个项目:让 Agent 做逆向分析的 REA,NSA 的逆向框架 Ghidra,先搭场景再出图的 ArtCraft,帮编程 Agent 本地检索代码的 XERJ,国内开发者做的上下文压缩代理 billion-context。

开发者Club
GitHub开源项目逆向工程MCPGhidraAI 绘画AI 视频代码检索上下文压缩
阅读 —收藏 —

📅 本期时间范围:2026-10-12 ~ 2026-10-18

这周 GitHub 周榜排第一的项目,一周涨了将近 25 万个 Star。它叫 REA,做的事情是「逆向工程」。

逆向工程以前一直是个挺小众的方向,主要是安全研究员、做漏洞分析和恶意软件分析的人在用,工具门槛也高,光是看懂反汇编出来的代码就要练很久。REA 做的事情,是把逆向工具接进了 Agent:你不用懂汇编,跟 Claude Code 说一句「帮我看看这个 App 的搜索功能是怎么做的」,剩下的交给 Agent 去分析。

连带着,NSA 七年前开源的逆向工具 Ghidra 这周也涨了 7500 多个 Star,排在周榜第七。

本期挑了 5 个项目,前两个都和逆向有关,后面三个分别是给创作者用的 AI 绘图工作台,以及两个帮编程 Agent 省 token 的工具。文中 Star 数均为截至发文时 GitHub 页面的数据。

01 REA

看到别人 App 里有个好用的功能,让 Agent 告诉你它是怎么实现的

REA 在 Hopper 里分析一个原生二进制文件

REA 是 Reverse Engineer Anything 的缩写,MIT 协议,TypeScript 写的。仓库今年 4 月建的,现在 29 万多 Star,这周一周就涨了 24.8 万。

先说一句:这个增速在 GitHub 上非常少见,Star 数看看就好,更值得关注的是它到底能做什么。

它本质上是一个 MCP Server。装好以后,你的编程 Agent 就多了一整套逆向分析工具,可以在没有源代码的情况下检查一个程序:把二进制反编译成伪代码、找出字符串和函数调用关系、拆开 Electron 应用看模块和 IPC 通信、抓网页的网络请求。Agent 拿到这些结果后,再给你讲清楚这个功能是怎么实现的,每个结论都附上证据,还能照着思路在你自己的项目里写一个类似的功能。

一行命令就能安装完成,需要 Node.js 22.19 版本及以上:

npx rea-agents setup

它会让你选择要接入哪些 Agent,Claude Code、Codex、Cursor、Gemini CLI 都支持,你确认改动以后它才去改配置,改之前还会先做备份。装完之后还需要重启 Agent,然后就可以直接这样问:

Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

把 Notes 换成你想研究的 App、把 search 换成你想了解的功能就行。不想通过 Agent,也可以在终端里直接用,比如分析一个解压出来的 Electron 应用:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

它能分析的东西范围很广,常见的有这几类:

  • 原生程序:exe、Mac 应用这类编译好的二进制,需要配合 Hopper、Ghidra 或 IDA 其中一个来做反编译
  • Electron 和 JavaScript 应用:VS Code、Notion 这类桌面应用,不需要额外装逆向工具
  • Android 安装包:需要配合 JADX
  • 网页:页面结构、脚本、网络请求,需要一个 Chrome 内核的浏览器
  • 另外还有 .NET 程序、WASM、固件、抓包文件、SQLite 数据库等等

REA 的三个官方案例

官网放了三个案例,通过这些案例就可以说明它的基本用法。一个是分析 Notion 桌面版,从界面上的剪贴板功能一路追到 Electron 的主进程,看它是怎么处理富文本剪贴板的;另外两个是老游戏,一个是 DX-Ball 弹球游戏的声音左右声道计算,一个是 PC-98 上的东方弹幕游戏的子弹角度算法。DX-Ball 那个案例最后还原出来的 C 代码,通过了 3205 个和原版 x86 程序对比的测试用例,编译出来的 63 个字节也和原版完全一致。

几个上手前要知道的点:

  • 分析是在本地跑的,但分析结果会交给你的 Agent,也就会发给对应的模型服务商,分析公司内部的程序时要留意这一点
  • 用到 IDA Pro、Hopper 这类商业软件时,需要你自己有正版授权,项目明确说了破解版、共享激活码都不在支持范围内
  • 项目开头特意提醒了一句:只认 morluto/rea 这个仓库、rea.tools 官网和 rea-agents 这个 npm 包。项目火了以后很容易出现名字相近的仿冒仓库,下载前一定要看清楚来源

最后说说我的看法。它最适合三类人:做安全研究、需要分析恶意样本或排查第三方 SDK 行为的人;做游戏保护、软件兼容的人;还有就是好奇某个功能是怎么做的,想学习它思路的开发者。

但「看到别人的功能,照着做一个」这件事要把握好分寸。学习思路没问题,直接把反编译出来的代码搬进自己的商业产品,很可能会碰到版权问题,而且不少软件的用户协议本身就禁止反编译。项目自己的定位也写得很清楚:用于合法研究、教学、软件互通和老软件保存,或者分析你自己有权分析的软件。

开源地址:https://github.com/morluto/rea

02 Ghidra

REA 背后能调用的逆向引擎之一,NSA 出品,免费

Ghidra 的代码浏览器界面

Ghidra 是美国国家安全局(NSA)研究部门开发的逆向工程框架,2019 年开源,Apache-2.0 协议,Java 写的,现在 8.9 万多 Star。它不是新项目,这周能上周榜,大概率是被 REA 带起来的,因为 REA 做原生程序分析时,可以直接调用你电脑上装好的 Ghidra。

反汇编、反编译、画函数调用图、写脚本自动化分析这些逆向的常用功能它都有,支持的处理器架构和文件格式也非常多,Windows、macOS、Linux 都能跑。在它开源之前,这个领域最常用的是 IDA Pro,功能强但授权价格很高,Ghidra 开源以后,很多个人研究者和学生才有了一个能免费用的专业工具。

安装要先装 JDK 25,然后下载官方发布的 zip 包解压运行 ./ghidraRun。注意下载的是 Releases 里 Assets 下面那个 ghidra_<版本号>_<日期>.zip,不是旁边的 Source Code。目前最新的正式版是 9 月 21 日发布的 12.1.4。如果你习惯用 Python 写脚本,可以用自带的 PyGhidra 启动。

需要提醒一句:Ghidra 的部分旧版本有已知的安全漏洞,官方在首页就放了警告。逆向分析经常要打开来路不明的文件,所以一定要用最新版,最好在虚拟机里分析可疑样本。

如果你只是想跟着 REA 试一试原生程序分析,又不想花钱买 IDA,装 Ghidra 是最省事的选择。

开源地址:https://github.com/NationalSecurityAgency/ghidra

03 ArtCraft

把 AI 绘图从「写提示词碰运气」变成「先搭场景再出图」

ArtCraft 演示:在同一个场景里组合图片抠图、3D 模型和背景

ArtCraft 这周涨了 2 万多 Star,总数 3 万多,Rust 写的桌面应用,MIT 和 Apache-2.0 双协议。它给自己的定位是「给艺术家用的 IDE」。

用过 AI 绘图的人应该都有这个体会:想要一个特定的构图、角色站在特定位置、镜头从某个角度拍过去,光靠提示词描述很难控制,往往要反复生成很多次才能碰到一张满意的。ArtCraft 的思路是先在 2D 画布或者 3D 场景里把画面摆好,再交给模型去生成。

上面那张动图就是一个例子:把抠好的图片、3D 模型、背景放进同一个场景里,摆好位置和镜头,再出图。其他功能还有把一张图转成 3D 模型、给角色摆姿势、让多个镜头共用同一个场景环境,以及常规的文生图、图生视频、局部重绘。

它接入的模型很多,自家通道里列了 62 个,图片、视频、音乐、3D 模型都有。对国内用户来说比较亲切的是,里面有不少国产模型:字节的 Seedream 和 Seedance、快手的可灵、腾讯的混元 3D、生数的 Vidu、MiniMax 都在列表里。另外也能接 Grok、Midjourney 这些平台。

需要注意的是,开源的是这个桌面客户端,免费下载、不需要订阅,但生成图片和视频本身要调用模型,官网有单独的定价页面,正式用之前建议先看清楚费用。目前提供 Windows 和 macOS 安装包,Linux 用户需要自己从源码编译。

如果你平时在做分镜、概念设计或者短视频素材,又经常被「提示词控制不住画面」困扰,它很值得试一试。如果只是偶尔生成几张配图,直接用各家模型的网页版就够了。

开源地址:https://github.com/storytold/artcraft

04 XERJ

让编程 Agent 先查资料再写代码,而不是一个文件一个文件地读

XERJ 演示视频截图

XERJ 是一个 Rust 写的本地搜索引擎,单个二进制文件,不需要装 Java,Apache-2.0 协议。今年 6 月底建仓,现在 7000 多 Star,今天在日榜上一天就涨了 1600 多。

它要解决的问题是:编程 Agent 在找代码时,通常是用 grep 搜关键词,再把整个文件读进上下文,读得多了 token 就花得很快。XERJ 的做法是先把文件夹建成索引,Agent 需要什么,就直接查出对应的那一段代码,带着文件名和行号返回。

它主打的用法叫「参考编程」:接到一个任务后,让 Agent 先把和这个任务最接近的几个开源项目下载下来建好索引,看看别人是怎么解决同样问题的,再动手写自己的代码。

curl -fsSL https://xerj.org/get | sh
xerj --insecure --data-dir ./data &
xerj init                          # 一条命令接入 Claude Code / Cursor
xerj autoindex ~/my-project        # 给项目建索引
xerj search "how do we rotate the WAL segment"

官方做了一个对比实验:8 个任务、每种方式各跑 16 次,用 grep 方式的 Agent 平均输出 26,477 个 token、花费 3.27 美元,用 XERJ 的是 9,982 个 token、1.58 美元,两者都把 16 次全部做对了。

这组数据我觉得比较可信的地方在于,项目自己把限制条件也写出来了:它的优势主要在私有代码、内部代码、比较冷门或者比较新的代码上。如果是 React 这种模型早就学得很熟的流行库,用它基本没有收益,甚至可能有反作用。也就是说,你在公司里改内部系统时更可能省钱,写常见的业务代码时差别不大。

它还能当日志分析、本地知识库、Agent 长期记忆来用,接口兼容 Elasticsearch 的写法。

要特别注意上面命令里的 --insecure:它会关闭加密和身份验证,能连上这个端口的人都能读写、删除所有索引。默认只监听本机地址,个人在开发机上用没问题,千万别为了方便把端口开放到局域网或者公网上。

开源地址:https://github.com/xerj-org/xerj

05 billion-context

国内开发者做的上下文压缩代理,让一个会话连着跑好几天

billion-context 的统计面板:请求数、缓存命中率和每次压缩的记录

billion-context 是国内开发者做的项目,有中文文档和 QQ 群,MIT 协议,1500 多 Star,这周涨了近 800,规模不大,但解决的问题很实际。

用 Claude Code 这类工具干长活时,对话越来越长,迟早会撑满上下文窗口。工具自带的压缩通常是一次性把前面的对话总结掉,细节容易丢,之前的提示词缓存也要重新建立,费用一下子就上去了。

billion-context 的做法是在 Agent 和模型 API 之间加一层本地代理。它会给模型多注入几个工具:compress 把一段对话压缩成摘要,decompress 在需要细节时把它恢复回来,search_context 在压缩过的内容里搜索。什么时候压、压哪一段,由模型自己决定,每次只压一小段,所以前面的缓存大部分还能继续用。

上面这张统计面板就是一个真实会话的记录:509 次请求,缓存命中率 96%,压缩一共省下了 6330 万个 token。项目给出的整体效果是省 5 倍 token,作者还写了一篇论文,记录了自己四个半月、17 万多次模型调用的使用数据。

它支持的客户端非常多,Claude Code、Codex、OpenCode 之外,国内的 Kimi Code、Qwen Code、TRAE、CodeBuddy、Qoder、iFlow、智谱的 ZCode 都有对应的接入方式。最简单的用法是装好后用 bili claude 代替 claude 启动。

我建议上手前想清楚一件事:它是一个代理,你所有发给模型的请求和 API Key 都会经过它。代码是开源的,可以自己看,但对接部分客户端时用的是证书中间人的方式,公司电脑上用之前最好先和安全同事确认一下。如果你平时的会话都不长,工具自带的压缩完全够用;如果你经常让 Agent 连续跑好几个小时,被反复压缩和账单搞得头疼,它值得试一试。

开源地址:https://github.com/ranxianglei/billion-context

装之前,先看清它们要什么权限

这几个项目有一个共同点:要用好它们,都得交出一些权限或者数据。选型的时候,可以先看清楚每个工具要的是什么。

REA 和 Ghidra 要的是「被分析的程序」。分析自己的软件、开源软件、公司授权你分析的样本,没有问题;拿来拆商业软件的核心功能再搬进自己的产品,就会有法律风险。另外 REA 的分析结果会进到模型的上下文里,也就意味着会发给模型服务商。

XERJ 和 billion-context 要的是「你的代码和请求」。一个会把整个项目建成索引,一个会经手你所有的模型请求和 API Key。它们都在本地运行,这一点很好,但默认配置都是按「一个人在自己电脑上用」来设计的,搬到团队环境之前,要先把端口、认证和证书这些配置弄清楚。

ArtCraft 要的是「钱」。客户端免费,生成要花钱,接了 62 个模型以后很容易这个试一下、那个试一下,第一次用建议先定个预算。

这几个工具本身都不难装,难的是装完以后,知道它们在你的电脑上到底能碰到什么。

评论

登录后即可发表评论

登录账户

加载评论中...