AI 逆向神器 REA:从入门到精通

今天来看 REA (Reverse Engineer Anything),本篇写给新手小白,新手也能学会!

先说结论:它是一个装在 AI Agent 里的逆向工程工具箱。 你给它一个软件。它把里面是怎么做的,一样样给你翻出来。每一条结论都带着证据。

它自己没发明任何新技术。真正拆软件的活儿,是 Hopper、Ghidra、IDA 这些老牌工具在干。REA 做的是中间那层翻译——把你家 AI 会说的话,翻成这些工具听得懂的指令。反过来,工具吐出来的天书,它再翻回你能看懂的人话。

这个仓库 4 月 14 日才建。到 10 月 14 日,star 数已经 22 万——刚好半年。README 里挂着 20 万 star 的致谢,这个月还冲上过 GitHub Trending 第一。

这篇不讲热闹,讲怎么装上、跑起来、看懂。整篇按「文科生也能跟着做」来写,每个第一次出现的名词,都用大白话解释一遍。

目录

  • 一、REA 到底是个什么东西
  • 二、能干什么·不能干什么
  • 三、下载和装
  • 四、三个分析引擎怎么挑
  • 五、第一个任务
  • 六、证据:REA 最值钱的地方
  • 七、让 Agent 自己干
  • 八、三个官方案例
  • 九、坑集锦
  • 十、常见问题
  • 最后

一、REA 到底是个什么东西

先摊开两个词:逆向工程、MCP。这俩通了,REA 是干嘛的就自动清楚。

逆向工程

把一个做好的东西拆开,看它是怎么做出来的。

这事不神秘。小时候拆过玩具车没有?外壳撬开,里面是齿轮、小电机、两根电线。看一眼就懂了——原来这车是这么跑的。

软件逆向是同一件事,只不过拆的不是塑料壳,是打包好的程序文件。

举个正经的用处。你看到一个小程序,搜索框里输一个字结果就跳出来了,快得不正常。想知道它怎么做到的,把包拆开,翻出搜索那一段逻辑。看完你就知道它用了什么招。

注意前提:拆别人的东西得有这个权利。学习、修自己的软件、做安全研究,是一回事。拿别人的东西去干别的,是另一回事。

MCP

给 AI 装上的一双手。

AI 聊天框本质上有张嘴。能说,能写,能出主意,但碰不到你电脑上的任何东西。你让它「帮我看看这个文件里写了什么」,它只能回一句「我看不到,你粘给我」。

这不是它笨——是它压根没有手。

MCP 就是解决这个的:一套统一的标准接口,让 AI 能真伸手去用别的软件。

你就当是招了个很聪明的新员工,第一天上班桌上空空的。MCP 是给他接上打印机、计算器、档案柜的那根线。接上线,你说「把上个月的报表调出来」,他真的能自己去调。

REA 站在中间

左边是 AI Agent,右边是 Hopper、Ghidra、IDA,REA 是钉在中间的那根管子。

它是一台 MCP 服务器。让 AI 能调用那些逆向工具,再用大白话把结果讲给你听。

  • 干活的:Hopper / Ghidra / IDA,把程序拆开
  • 传话的:REA,让 AI 指挥得动它们
  • 动嘴的:你家的 AI Agent(Claude Code、Codex、Cursor 都行),听懂你要什么

REA 官方对自己的定位说得很克制——它不是新的反编译器,是一层接口。

它和别的不一样在哪

传统的逆向工具(Ghidra、IDA) 网页上的 AI 聊天 REA
谁在操作 你自己,得看得懂汇编 只会说,碰不到你的文件 AI 自己动手
没有源码时 能拆,但结果要你自己啃 完全没辙 能拆,还能用大白话讲给你听
结论可信吗 你自己判断 可能一本正经地瞎编 每条结论带证据

最下面那行是重点。「带证据」和「AI 随口一说」,是两件完全不同的事。

为什么值得学

想抄作业的时候,它最快。

手里有拆不开的东西的时候——没源码的老软件、只有个安装包的旧工具、别人丢过来的一堆二进制。

还有更长远的一条:它教你 MCP 是怎么用的。 装 REA 的过程就是给 AI 装手的过程。这套动作学会了,以后接别的工具是同一个套路。


二、能干什么·不能干什么

能干的

按「你要额外装多少东西」分三档:

档次 能拆什么 要额外装东西吗
最省事 JavaScript / Electron 应用、网站、SQLite 数据库、网页存档、包和资源 不用,装完 REA 就能跑
中等 原生二进制(Mach-O、ELF、PE、Mac 的 .app)、Go 二进制、.NET 程序、WASM 产物、EVM 字节码、Linux 崩溃转储 要配一个分析引擎
要折腾 Android 的 APK 和设备、固件、网络抓包、录下来的逻辑信号、JEB 工程、Flutter 应用 还要装目标专属的配套工具

新手看这一句就够了:第一档不用装任何引擎。

Electron 应用就是拿网页技术写的桌面软件——微信桌面版、Notion、VS Code 都是这一类。你电脑上日常用的软件,一大半属于这档。而且这档拆解门槛最低。

所以别一上来就盯着 Hopper。先从第一档切进去,跑通一遍,再决定要不要往深水区走。

不能干的

一、它不给你原始源码。

REA 给的是伪代码——反编译工具根据机器指令猜回来的近似写法,不是原作者敲的那份稿子。变量名可能是 local_18,函数名可能是 sub_401230。逻辑是真的,命名是猜的。

二、它不把软件传到云上。

官方 FAQ 的原话是「REA 在本机分析目标」,目标文件不出门。

但有一句得连着说:你家 Agent 用的是哪家的模型,那家的数据政策是另一回事。 REA 不上传,不代表整条链路上没有数据流动。

三、它不帮你抄一个 App。

它给的是「看懂」,不是「复制」。看懂别人的思路,然后写你自己的实现——这是它支持的用法。


三、下载和装

REA 有两个用法:当命令行工具,或者装进 AI Agent。顺序是先把命令行跑通——出错信息最直白,拿它验证装没装好。

第一步:装 Node.js

它挑版本挑得很细:只认 22.x(要 22.19 及以上)、24.x(要 24.11 及以上)、26 及以上。23 和 25 不行,预览版也不行。

两条路:官网下安装包双击装(新手走这条),或者 brew install node,或者 nvm

node -v   # 打印版本号,看是不是 22.19 以上、或者 24.11 以上
nvm install --lts\n  #推荐使用nvm来安装 切换版本
nvm use --lts #使用最新lts版本

版本不对就先换对。REA 的安装程序不会顺手帮你升级 Node.js,也不会帮你装 Java 或者 Python。它只管自己那一摊。

如果你搞不定,就让智能体帮你吧,无脑配置好!

第二步:一条命令装

npx rea-agents@latest setup #下载最新版并进入交互式安装 会让你选智能体、安装工具、skill

npx 是 Node.js 自带的小工具。作用是「临时下载一个包、跑完就用」,所以不用先全局装什么。

想装成全局命令、以后敲 rea 就能用:

npm install --global rea-agents   # 全局安装,之后直接敲 rea
rea --help                        # 看看它有哪些命令

新手先走 npx 那条,不改系统全局环境,试完删起来干净。

第三步:setup 会问你什么

第一问:给哪些 Agent 装。

客户端 装的时候填的值
Claude Code claude_code
Codex codex
Cursor cursor
Gemini CLI gemini_cli
VS Code vscode

完整的二十来个列表在官方文档里。

有个细节值得知道:它检测到了不等于替你勾上。 已经装过 REA 的默认选中。新发现但没装过的,只列出来、不主动勾。这个设计是对的——检测到只说明它看得见,不代表你有这个意图。

第二问:装不装 Hopper。

Hopper 是 Mac 上一款收费的逆向工具。REA 提供了帮用户装它的选项,这一步单独问、要你再批准一次。第一次玩建议不安装,不装完全不影响,第四节细讲。

第三问:看一遍计划,然后批准。

别急着回车。它会把要改的文件、要跑的命令、要装的软件、要下载的来源全列出来,看完再点同意。

记住一件事:下载包的批准和改配置的批准是两次。 npm 弹一次,问你下不下包。REA 再弹一次,问你能不能动配置。别以为点了第一次就全同意了。

想先看它打算干什么:

rea setup --client codex --dry-run   # 只出计划,不动任何文件

第四步:装完先做三件事

新手最容易漏这一段。装完不验证,后面出问题会以为是软件坏了。

第一件:跑一次体检。

rea doctor --json   # 体检,只读,不改任何东西

本机前置条件、Agent 配置、装了哪些引擎,全查一遍报给你。严格只读,跑一百遍也不动你的东西。

有一点提前说:报告里 healthy 是 false,不代表你用不了。 它默认把「你可能用到的所有东西」都查一遍。你没打算装 Hopper,它当然报 Hopper 那块不对劲。想知道自己那摊能不能跑,就用带范围的:

rea doctor --provider ghidra --json   # 只看 Ghidra 这一项
rea doctor --client codex --json      # 只看 Codex 这一个客户端

第二件:重启 Agent。

REA 是在安装时把 MCP 注册写进你 Agent 的配置文件的。写完那一刻,已经开着的 Agent 并不知道,它得重启一次才会去读新配置。

症状很典型:装是装上了,doctor 也说没问题。但你在 Agent 里问它,它说没这个工具。九成不是坏了,是没重启。

第三件:跑一条不依赖任何引擎的命令。

最有说服力的一步,不需要 Hopper、不需要 Ghidra,只要 Node.js 装对了就行:

npx -y rea-agents@latest analyze-javascript-application /你的/应用/绝对路径 --json # 拆一个 JS 或 Electron 应用 注意命令后面的参数不要换行

#示例
 npx -y rea-agents@latest analyze-javascript-application "/Applications/Claude.app/Contents/Resources/app.asar" --format json

跑出内容了,说明整条链路是通的。

跑不动多半是卡在这一句:artifact_integrity_mismatch。

带原生模块的应用(里面有 .node 文件的)第一次跑就会撞上。意思是应用打包好之后,厂商又给里面的原生模块签了名,归档里记的摘要跟实际文件对不上。这不是你装错了,是这类应用的常态。

按它给的办法,加一个参数就过去:

npx -y rea-agents@latest analyze-javascript-application "/Applications/你的应用.app/Contents/Resources/app.asar" --json --integrity-policy=record-and-continue

record-and-continue 就是把校验从「对不上就停」改成「记下来接着跑」。Claude Desktop、ChatGPT 这些带原生模块的,实测都要加这一句。

更新和卸载

rea update                         # 更新:全局装的用这句
npx rea-agents@latest setup        # 更新:npx 装的,重跑一次 setup
rea uninstall                      # 卸载:只摘掉 REA 自己写进去的配置和说明书
rea uninstall --purge-data         # 卸载:连 REA 的缓存和状态一起清掉

卸载只动 REA 自己写进去的东西。Hopper 留着、Node.js 留着、你自己抓的包留着、别的 MCP 服务器留着。


四、三个分析引擎怎么挑

不装行不行

行。而且新手第一次就该不装。

第二节第一档的目标——JavaScript、Electron 应用、网站、SQLite 数据库——压根不需要任何引擎。引擎是给「原生二进制」准备的。编译器直接吐出来的机器码,外面没有网页壳包着,门槛高得多。

正确顺序是:先用免引擎那一档跑通,确认流程你能接受,再考虑要不要为二进制付学费。

三个引擎是什么关系

Hopper Ghidra IDA
要花钱吗 收费,有功能受限的试用版 免费开源 收费,而且是三家里最贵的
谁做的 商业公司 美国国家安全局开源出来的 商业公司,这行的老字号
装起来 REA 能帮你装(Mac 上最省事) 自己下、自己装 JDK,再把路径告诉 REA 有自己一套要求,看官方单独的手册
适合谁 Mac 用户,想少折腾 预算为零、愿意自己动手的 已经有它的、或者干这行的专业人士

三个里装一个就够。

同一次分析三个都能干的时候,得指定用哪个。命令行加 --provider,或者 Agent 里指定 provider_id。不指定它不知道该叫谁。

Ghidra(免费那条路)

export GHIDRA_INSTALL_DIR=/你的/ghidra_12.1.4_PUBLIC    # 指向解压好的 Ghidra 目录
export JAVA_HOME=/你的/jdk-21                           # java 已经在 PATH 里的话,这句可省  不会安装让智能体帮你安装
rea doctor --json                                       # 体检,看它认不认得到
rea setup                                               # 重新走一遍 setup,把路径存进去
  • Ghidra 得是 12.1.x,版本对不上它不认。
  • JDK 要 21 及以上、必须 64 位,还得有 javac。

这两样都得你自己先装好。REA 不会替你装 Ghidra、装 Java、装 Python。它只负责把路径记下来。

Hopper(Mac 省事那条路)

在 Mac 上走 setup,它会问你要不要装 Hopper。同意了,它会下载官方安装包,校验大小和摘要,确认应用包没问题。然后原子地装到 ~/Applications/ 下面。最后打开 Hopper 让你选试用还是输授权。

  • 不用 Homebrew,也不用管理员权限。
  • 卸载 REA 时 Hopper 会留着,不被一起清掉。
  • 试用版有厂商自己定的限制,和正式版不是一回事。
  • Mac 弹权限提示不给开,去「系统设置 → 隐私与安全性 → 自动化」里把对应程序勾上,再重试。

什么时候要调超时

拆很大的二进制文件时,引擎启动本身就慢,默认时间可能不够:

export REA_HOPPER_STARTUP_TIMEOUT_MS=300000   # 毫秒,把 Hopper 的启动放宽到 300 秒
export REA_GHIDRA_STARTUP_TIMEOUT_MS=300000   # 毫秒,把 Ghidra 的启动放宽到 300 秒

注意:这是环境变量,得设在「启动 REA 的那一层」才有用。而且你家 Agent 自己的请求超时也得够长——REA 那边肯等,Agent 那边先断了也没用。


五、第一个任务

新手可以不管这些命令;此篇做了解,可以直接看下面通过skill 或者skill 操作好一点!

挑一个你电脑上的 Electron 应用来拆——Notion 桌面版、VS Code、任何拿网页技术写的桌面软件都行。

npx -y rea-agents@latest analyze-javascript-application /Applications/你的应用.app --json   # 路径写到 .app 那一层

路径要写绝对路径,从头写起的完整路径,不能写 ./app 这种相对的。写错了它找不到。

跑完给你一份 JSON,别被吓到,你要看的是这几样:

  • 模块:这个应用拆成了多少个文件、怎么组织的
  • 引用关系:谁引用了谁,谁依赖谁
  • Electron 的边界:最有意思的一块

Electron 应用内部通常分三层:渲染层(管界面)、预加载层(夹在中间的桥)、主进程(管系统能力)。

界面层出于安全考虑,默认碰不到系统能力。它想开个文件、读个剪贴板,得通过预加载层搭的那座桥,喊话给主进程去做。

REA 能把这三层之间的桥给你标出来。看懂了这个,你就看懂了这类应用是怎么搭的。

还没装任何引擎也没关系——这条命令本来就不需要引擎。

跑出来能看什么

别被满屏 JSON 吓到,真正要看的就三四块。拿 Claude Desktop 的实测结果举例:

 npx -y rea-agents@latest analyze-javascript-application "/Applications/Claude.app/Contents/Resources/app.asar" --format json
  --integrity-policy=record-and-continue > ~/Desktop/claude-analysis.json

规模:388 个文件、369 个 JS、818 万个语法节点、6089 条发现。

结构:electron-main 1 个、electron-renderer 6 个、ipc-channel 113 条、context-bridge-api 19 个、native-addon 6 个。

带名字的节点——最有用的一层。那 6 个原生模块,一眼就看出它在干什么:

@ant/claude-native/claude-native-binding.node
@ant/claude-swift/build/Release/computer_use.node   ← 电脑操作
node-pty/prebuilds/darwin-arm64/pty.node             ← 终端模拟

通信频道也带名字,比如 claude.designPdf → printFrameToPdf,它有个把设计稿打成 PDF 的功能、走哪条频道,直接标出来。

它自己承认没搞明白的:limitations 里写着几个大文件「堆爆了,只保留部分事实」。

它给的是原料,不是结论。 113 个频道名摆在那儿,哪个是核心、怎么串的,得你自己看。

结果不落盘,要自己存

REA 不写任何文件,结果只打在终端上,关掉就没了。想留档自己重定向:

npx -y rea-agents@latest analyze-javascript-application "/Applications/你的应用.app/Contents/Resources/app.asar" --format md --integrity-policy=record-and-continue > ~/Desktop/分析.md

–format 能选 md、json、yaml、jsonl。只想看几项关键的,用 --filter-output statistics,summary。


六、证据:REA 最值钱的地方

REA 官方把「证据优先」摆在设计原则的第一条。

意思是:它每给一个结论,都会连着把「我凭什么这么说」一起给你。 包括它凭什么这么判断:从文件的哪个位置读出来的、那段数据的摘要值、具体是 JSON 里的哪个路径。

还有一条更值钱:它会明确列出哪些事情是这次分析没能确定的。大多数工具只报「我发现了什么」,不报「我没搞明白什么」。REA 会写出来。

为什么这条最要紧?

AI 有一类毛病,用的人都知道:它不知道的时候,不会说不知道,会编一个听起来像那么回事的答案。 这在聊天里最多就是尴尬。但在逆向工程这种活上,一个编出来的结论,会让你顺着错的方向走好几个小时。

「每条结论带证据」正好堵住这个口子——它把「你可以自己去核对」变成了流程的一部分。给你一条带位置、带摘要的结论,你随时能回去验。给你一句「这个函数是用来加密的」,你只能选择信或者不信。

这个差别,就是你敢不敢把它用在正事上的差别。

不过别把带证据的结论当成免检结论。 证据本身也是工具跑出来的,工具也会错。证据的价值在于「可核对」,不在于「一定对」。


七、让 Agent 自己干

前面几节都在命令行里转。REA 真正的用法,是让 AI Agent 替你操作命令行。

回到第三步的 setup,把你要用的 Agent 勾上就行。它做两件事。往你的 Agent 配置里写一条 MCP 注册。再装一份配套的「说明书」进去,告诉 Agent 这套工具该怎么用。

光注册上不算完,说明书也得在位,不然 Agent 有工具也不知道按什么章法使。

只想装skill 说明书、不注册 MCP:(如果你前面已经执行设置安装就不用了)

npx skills add morluto/rea --skill reverse-engineer-anything   # 只装说明书

装好、重启完 Agent,直接用大白话问就行。

官方 README 里的例子长这样(我Mac的跑奔溃了这命令):

搞清楚 Notes 应用里的搜索是怎么做的,把证据给我看。
然后照着这个思路,帮我做一个类似的功能。

这句话本身就在示范正确的用法。拆开看是三段:要什么(说清目标)、要证据(防它瞎编,也让结果可核对)、要它接着干(照这个思路帮我做)。

第三段最值钱。传统流程走到这里是「你自己看懂了,再自己去写」。现在这一步被接上了——看懂了,直接让同一个 Agent 接着写。

能直接抄的模板:

帮我拆一下 [目标] 里的 [某个功能]。
1. 它是怎么实现的,讲给我听,别堆术语
2. 每条结论把证据带上
3. 你没能确定的地方,单独列出来
4. 最后照这个思路,写一个我自己的版本

第 3 条建议每次都带上。主动要它报「不确定清单」,比事后自己去猜哪些是它编的,省事得多。

大项目拆解 和这个命令试了 很容易 上下文爆炸,因为REA 拆解一直输出,任何一个模型都会爆。要么存到一个文件再分析,要么换小一点的项目来试试

实操例子智能体里用提示词 REA 分析 Claude Desktop 提示词:

拆一下 Claude Desktop,给我它的基础架构:
  1. 分几层,每层干什么
  2. 有哪些原生能力
  3. 界面和系统之间怎么通信


八、三个官方案例

官方仓库挂了三个做完的案例。看这三个比看功能列表有用——能让你知道这东西的「分辨率」有多细。

DX-Ball(1996 年的打砖块游戏)。它把游戏里「声音左右定位」的那段计算还原了出来。球撞到挡板的哪一侧,声音就该往哪边偏,让人听着觉得球真的在那个位置。还原出来之后,用 3205 个原始的 x86 测试用例验过,全过。「还原出来了」和「还原出来并且验过了」,是两回事。

Notion。追一条剪贴板的链路:把「复制」这个动作从渲染层一路追到主进程。中间经过预加载层、过了那座桥,最后落到系统剪贴板上,每一跳都标了出来。第五节说的「三层结构」,这就是活的示范。

TH04。一台 16 位日文电脑(PC-98)上的老游戏,还原了它里面「子弹环」的计算——子弹绕成一圈打出来的那种效果。这个案例存在的意义,是告诉你它认的目标有多老、多偏门。

三个案例横跨 1996 年的 DOS 游戏、现代 Electron 应用、16 位日文电脑上的游戏。没有一个是在拆「正常的新软件」。而它们做出来的东西,都不是「这个软件大概是怎么做的」这种笼统判断。是具体到某个计算、某条链路、某个跳转的还原。


九、坑集锦

坑一:不重启 Agent,就以为装失败了。

Agent 还是老进程,读不到新配置,症状是说「没有这个工具」。

解法:把 Agent 完全退掉再开。doctor 查的是文件,不查当前连接。它说没问题,也不代表你手上这个会话能用了。

坑二:Node.js 版本差一点点。

22.18 不行,23 不行,25 不行,差一个小版本就是不认。

解法:node -v 先看一眼,装之前就确认好。

坑三:把 doctor 的 healthy: false 当成装坏了。

它默认把所有可能用到的东西都查一遍,你没装 Hopper 它当然报 Hopper 不对。

解法:用带范围的体检,只看你真正要用的那一项。

坑四:以为只点一次「同意」就够了。

下载包批准一次,改配置批准一次。有人看第一遍过了就以为全过,第二遍直接点了拒绝。

解法:两遍都看清楚再点。不想交互就先跑 --dry-run。

坑五:指望它给你原始源码。

它给的是伪代码,变量名是 local_18、sub_401230 这种猜出来的名字。

解法:把预期调对。逻辑是真的,命名是猜的,排版是乱的。这是这类工具的常态,不是 REA 没做好。

坑六:拿敏感的东西去拆。

REA 本机分析、不上传,这条是真的,但你家 Agent 用的模型有它自己的数据政策。

解法:拆之前先问自己一句——这个文件进了 AI 的上下文,能不能接受。

坑七:一上来就装引擎。

看到 Hopper 收费、Ghidra 要配 JDK,就卡在这儿了。

解法:先跑第一档,那些压根不用引擎。

坑八:路径写相对路径。

./my-app 这种它不认,得写完整的绝对路径,macOS 上 .app 就写到 .app 那一层。

坑九:忘了自己有没有权利拆。

这条不属于技术问题,但最该放在脑子里。动手之前先想清楚这一层。


十、常见问题

必须装 Hopper 或者 Ghidra 吗?

不必。JavaScript / Electron 应用、网站、SQLite 数据库这几类,静态分析只要 Node.js 就行。引擎是给原生二进制准备的。

Hopper 需要提前打开吗?

不用,需要它的时候 REA 自己会启动。

哪些 Agent 能用?

支持本地 MCP 服务器的都能用。官方列出来并验证过的有二十来个。

它返回的是源码吗?

不是,是伪代码。逻辑还原了,命名是猜的。

我的软件会被传到网上吗?

REA 在本机分析目标,不上传。但你的 Agent 用的模型服务有它自己的数据政策,那条线得单独算。

它支持 Windows 吗?

分着看。Agent 那部分能用;Ghidra 在 Windows 上是实验状态;Hopper 的自动安装不可用。Mac 和 Linux 是主力平台。

怎么升级?卸载会留下垃圾吗?

见第三节最后。升级看当初怎么装的。卸载只摘 REA 自己写进去的注册和说明书,Hopper、Node.js、你自己抓的包,都不动。


最后

  • 它是什么:装在 AI Agent 里的逆向工程工具箱,左边接 Agent,右边接 Hopper / Ghidra / IDA
  • 最难懂的两个词:逆向工程 = 拆开看怎么做的;MCP = 给 AI 装的一双手
  • 装完先做三件事:跑 rea doctor --json、重启 Agent、跑一条免引擎的命令验证
  • 引擎不用全装:JavaScript / Electron / 网站那一档,一个引擎都不需要
  • 最值钱的是「证据」:每条结论告诉你凭什么,还告诉你哪些没搞明白
  • 用法口诀:先用免引擎那档跑通,再动引擎;要结论的时候顺手要证据

最短路径:

装 Node.js → npx rea-agents@latest setup → rea doctor --json → 重启 Agent → 拆一个 Electron 应用 → 看证据 → 再决定要不要配引擎。

先跑通一个最小的,比看完十篇介绍管用。

新手终极使用秘诀,在你了解REA后,直接用提示词安装:

plaintext帮我安装这个这REA工具,相关skill、mcp一并装上,相关执行环境一并装好,https://github.com/morluto/rea

装好后 直接用大白话,让他帮你复刻软件,分析软件!

作者:@xaiwind(想风)