<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>开源 on AI</title>
        <link>https://ai.programnotes.cn/categories/%E5%BC%80%E6%BA%90/</link>
        <description>Recent content in 开源 on AI</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-CN</language>
        <lastBuildDate>Sat, 10 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ai.programnotes.cn/categories/%E5%BC%80%E6%BA%90/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>REA：用 Agent 逆向工程一切，从应用行为到原生二进制</title>
        <link>https://ai.programnotes.cn/p/rea%E7%94%A8-agent-%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E4%B8%80%E5%88%87%E4%BB%8E%E5%BA%94%E7%94%A8%E8%A1%8C%E4%B8%BA%E5%88%B0%E5%8E%9F%E7%94%9F%E4%BA%8C%E8%BF%9B%E5%88%B6/</link>
        <pubDate>Sat, 10 Oct 2026 00:00:00 +0000</pubDate>
        
        <guid>https://ai.programnotes.cn/p/rea%E7%94%A8-agent-%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E4%B8%80%E5%88%87%E4%BB%8E%E5%BA%94%E7%94%A8%E8%A1%8C%E4%B8%BA%E5%88%B0%E5%8E%9F%E7%94%9F%E4%BA%8C%E8%BF%9B%E5%88%B6/</guid>
        <description>&lt;img src="https://ai.programnotes.cn/img/ai/AI.png" alt="Featured image of post REA：用 Agent 逆向工程一切，从应用行为到原生二进制" /&gt;&lt;p&gt;今日（2026-10-10）GitHub Trending 榜首是 &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/morluto/rea&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;morluto/rea&lt;/a&gt;&lt;/strong&gt;，单日新增约 &lt;strong&gt;14,927 stars&lt;/strong&gt;，总星数已达 &lt;strong&gt;51,548&lt;/strong&gt;，TypeScript 编写，MIT 协议。&lt;/p&gt;
&lt;h2 id=&#34;rea-是什么&#34;&gt;REA 是什么
&lt;/h2&gt;&lt;p&gt;REA（Reverse Engineer Anything）口号是&amp;quot;逆向工程一切&amp;quot;——一个面向二进制、应用与运行时行为的统一 MCP（Model Context Protocol）服务器。它的核心场景非常直接：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;看到某个应用里你喜欢的一个功能？让 Agent 用 REA 去调查它。它可以在没有源码的情况下分析应用，解释这个功能如何实现、给出证据，并为你的项目构建一个类似版本。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;REA 将 Agent 连接到一组检查工具，覆盖：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原生二进制&lt;/strong&gt;：伪代码、汇编、字符串、符号、调用与引用（依托 Hopper / Ghidra / IDA）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript / Electron 应用&lt;/strong&gt;：模块、导入、source maps、路由、IPC 与原生插件关系&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET 程序集&lt;/strong&gt;：元数据、CIL 指令、原生依赖声明（纯静态，无需引擎）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网站&lt;/strong&gt;：页面结构、脚本、网络观察与截图&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Android APK&lt;/strong&gt;：Manifest、类、反编译方法（需 headless JADX + JDK）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;固件&lt;/strong&gt;：区域划分与提取（Binwalk / Unblob，Linux）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EVM 字节码、Linux 崩溃记录、网络抓包（HAR/mitmproxy）、进程行为&lt;/strong&gt;等&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;工作原理&#34;&gt;工作原理
&lt;/h2&gt;&lt;p&gt;Agent 通过 MCP 调用 REA 检查目标、追踪相关代码；REA 返回带有&lt;strong&gt;证据和局限性说明&lt;/strong&gt;的分析结论，Agent 再据此追问、解释行为，或直接编写并测试一个实现。CLI 命令走同样的工作流，也可脱离 Agent 单独使用。所有分析默认&lt;strong&gt;本地运行&lt;/strong&gt;，不会上传应用。&lt;/p&gt;
&lt;h2 id=&#34;快速上手&#34;&gt;快速上手
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 一行完成 Agent 注册（支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx rea-agents setup
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 直接用终端分析 JS/Electron 应用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx -y rea-agents@latest analyze-javascript-application /path/to/app --json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 全局安装 CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install --global rea-agents
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;要求 Node.js 22.x（≥22.19）/ 24.x（≥24.11）/ 26+。深度原生分析需要一个逆向引擎（Hopper、Ghidra 或 IDA），setup 可在确认后自动安装 Hopper；纯 JS 与 .NET 静态分析无需任何引擎。&lt;/p&gt;
&lt;h2 id=&#34;案例&#34;&gt;案例
&lt;/h2&gt;&lt;p&gt;官方给出三个完整案例研究：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;DX-Ball 音量声像计算&lt;/strong&gt;：从音频调用追到 pan 计算函数，把不完整的伪代码还原为 C，通过 3,205 个原始 x86 测试用例，与原编译产物 63 字节完全一致。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notion 剪贴板桥&lt;/strong&gt;：从渲染进程的剪贴板 API 一路追过 preload 与 IPC 到主进程。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TH04 弹幕环计算&lt;/strong&gt;：分析 16 位 DOS 游戏 PC-98 原始指令，还原固定/瞄准角度计算并与历史编译器输出对比。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;点评&#34;&gt;点评
&lt;/h2&gt;&lt;p&gt;REA 代表了 AI Agent 工具链的一个有趣方向：不是让模型&amp;quot;猜&amp;quot;代码行为，而是给它一套严谨的静态/动态分析基础设施，并强制返回证据。对安全研究、互操作性开发、以及&amp;quot;抄作业式&amp;quot;功能还原都是利器。项目迭代很快，README 也提醒需及时 &lt;code&gt;rea update&lt;/code&gt;。免责声明明确：仅限合法的逆向工程用途，需自行获得授权。&lt;/p&gt;
&lt;p&gt;仓库地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/morluto/rea&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/morluto/rea&lt;/a&gt; · 官网：&lt;a class=&#34;link&#34; href=&#34;https://rea.tools/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://rea.tools/&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
