一句话通俗概括
REA自己看不懂二进制,它就是个“会指挥一堆老逆向工具干活 + 会让大模型读结果、做推理的包工头”。它不靠AI直接猜EXE逻辑,而是走迂回路线:让传统工具挖证据,LLM根据证据猜逻辑,再反复派工具去验证猜想。
传统逆向(人手工干活)
你拿到一个exe:
- 打开Ghidra → 加载程序,得到汇编、伪代码、函数调用图
- 人工读伪代码,猜:这个函数是不是算校验和?
- 去看内存、字符串、跳转分支,找证据,验证猜想对不对
- 反复来回翻,最后搞懂一段代码是干嘛的
难点:来回切换工具,要手动复制粘贴伪代码、偏移地址,人脑一点点串起来。LLM本身不能直接打开exe,不能读汇编文件,不能看函数图。你直接把整个exe丢给GPT/Claude,它完全看不懂。
REA迂回的整套流程(拆成大白话步骤)
REA = 包工头,MCP协议 = 电话,Ghidra/JADX/Binwalk = 专业技工,LLM = 分析师
-
第一步:包工头(REA)先把文件交给技工(Ghidra等)
REA把二进制丢给Ghidra,让Ghidra干活:提取伪代码、函数列表、字符串、跳转关系、内存地址。⚠️ 重点:真正解析exe、反编译的,还是Ghidra,不是大模型。大模型根本不碰原始二进制文件。
REA把技工输出的结果,整理成干净结构化文本(带上内存偏移、函数名这些证据)。 -
第二步:把整理好的证据递给LLM,让它提出猜想
LLM拿到Ghidra输出的伪代码,开始猜:“看这段伪代码,它读取输入,做循环异或,大概率是一个简单加密函数”
但LLM有老毛病:爱幻觉,瞎编,它的猜想不一定对。不能直接信。
- 第三步:REA充当联络员,让LLM可以继续指挥技工,去验证猜想(最关键的迂回) LLM不能直接操作Ghidra,但可以通过REA发指令: > REA,帮我去查这个函数 0x402100 的交叉引用,看看谁调用它;再提取这个分支的常量数组。
REA收到指令,转头调用Ghidra,拿到新证据,再送回给LLM。
LLM根据新证据修正猜想:哦,刚才猜错了,不是AES,是自定义校验。
👉 这就是它的核心迂回套路:猜想 → 调用工具拿新证据 → 修正猜想,循环往复。
不是AI一次性看懂整个程序,而是像人类逆向工程师一样,一点点挖、一点点试。
- 第四步:所有结论,必须绑定原始证据 LLM说这个函数是校验算法时,REA强制带上来源:哪个地址、哪段伪代码。 防止AI凭空编造,结论都有源可查。
打个生活化类比
想象你要破译一个保险箱的内部结构(二进制程序):
- Ghidra:X光机,可以拍箱子内部零件照片,但X光机不会解释零件是干嘛的,只会输出一堆零件图纸。
- LLM:聪明的侦探,不能直接拍X光,只能看X光照片,推理零件的运作逻辑。
- REA:中间跑腿的人。 侦探想看某个位置的X光 → REA去操作X光机拍照 → 拿图纸回来给侦探看;侦探提出假设,再让REA去拍另一处照片验证假设。
侦探本身没有透视能力,只能靠X光机产出的材料推理。REA的价值就是打通侦探和X光机,让侦探可以反复按需拍照、做实验。
什么叫“迂回”,和直接逆向的区别
✅ 传统逆向:工具产出信息,人来推理
✅ REA的AI逆向:工具产出信息,LLM做推理,REA负责来回调度、反复取证
❌ 不是:AI直接解析二进制、直接反编译。AI完全没有这个底层能力。
它的短板(这个迂回方案的天花板)
如果程序加壳、大量代码混淆、反调试:
X光机(Ghidra)本身就很难拍出清晰照片,原材料质量很差。
哪怕侦探(LLM)再聪明,图纸糊掉了,照样推不出正确逻辑。
所以REA不是万能破解神器,原材料不行,整个链路就失效。
极简一句话再浓缩
REA绕开“大模型看不懂二进制”这个硬限制:用老牌逆向工具去扒二进制的可见信息,再让LLM基于这些信息推理,并且允许LLM反复指挥工具去取证校验。
Top comments (0)