GitHub 上那个 REA 最近刷屏了,五万七千多星。号称 reverse engineer anything。
吹得越大我越想动手试试。就真的下下来跑了一轮,结果一跑就是两天。
先说结论:它对 JS 和 Electron 生态是真能干活,但别指望装上就能拆任意二进制。
一、装起来什么样
电脑上有 node 环境,一条命令拉包,全局装成 rea,版本 6.3.0。
命令行敲出来一大串子命令,静态分析、反编译、提取固件、网页抓包、进程捕获都有。光是看清单就看了好一会儿。
装完先跑了个 doctor 查环境。结果挺实在——Node 版本、系统这些基础项全绿,但它直接告诉我缺三样东西:Ghidra、Hopper、IDA,一个都没装。
也就是说,想拿它拆原生二进制的深度反编译,环境还不齐。
这个诚实程度反而让我放心,它没假装什么都能干。
二、先拿官方示例试水
我按官方指引跑了 electron 的 simple-samples,挑了 activity-monitor 这个例子。
它输出一份带证据链的分析结果,把窗口、IPC、脚本依赖都拆出来了,还带具体行列号。
我特意做了个核对。它说这个应用 package 名是 activity-monitor,版本 1.0.0,入口 main 是 app.js,BrowserWindow 定位在 app.js 第 10 行到 21 行,还识别出它 require 了 os、path、url、electron,以及从 CDN 引了 jQuery。
我翻开源码逐条对,全对得上。
那一刻我对这工具的信任感就上来了。因为它是真的读懂了代码,不是在瞎猜。
三、拿真实项目往狠里测
示例不过瘾,我直接把我电脑上部署的一个真实 Electron 应用源码整个喂给它。
四千二百多个源文件,跑起来比示例慢多了,但结果也厚实得多。
它给我重建出 17 个 BrowserWindow、486 条 IPC 通道、3 个 contextBridge 接口,暴露的成员 297 个,每条都带着行列定位。
IPC 这块分得特别细:字面通道 262 条,主进程 handler 213 个,渲染端监听 47 个,配对成功的传输 207 条。哪些通道谁发的、谁收的、有没有配对上,一张图明明白白。
光这一项就够用了。
整体统计是四千多文件、四千零几十个 JS 文件被解析,读了 44 兆文本,遍历了四百多万个 AST 节点,产出近八万条发现项,完整性矛盾为零。
这个规模已经超出 demo 级别,真实项目完全压得住。
四、再摸一把二进制和压缩包
光测 JS 不算完,我又拿微信开发者工具自带的 node.exe 试了试,59 兆的 PE 文件。
它识别出格式,算出的 sha256 跟文件本身对上了。
还测了 zip 包,安全拆解后逐文件校验哈希,一个都不含糊。
虽然我环境里没装 Ghidra,深反没走到,但光看它对这些文件格式的识别和校验严谨度,底子是稳的。
五、没吹的地方也有
两天跑下来,边界我也摸清了。
想深反二进制,得另装 Ghidra 或者 Hopper。我机器上没配,doctor 直接告诉我缺引擎。
网页类的命令要连浏览器调试端口,我这边没搭,没跑通。
还有个坑。decompile 只吃二进制文件,拿 JS 目录喂它会被拒绝,得改用 analyze-javascript-application。
这些限制它都写在错误提示里,给 remediation 指引,不算难绕。
六、我的真实感受
这工具最顺的场景就是静态分析 JavaScript 和 Electron 应用。这块是真能干活,而且输出像审计报告,每条结论都有出处,不是黑盒瞎猜。
它适合的人挺明确的。想搞懂一个 app 内部怎么走的,做安全审计的,还有想从现成应用里学架构的开发者,都算对口。
但别指望装上就能拆任意二进制,门槛还是实实在在摆在那的。想解锁完整形态,得先把 Ghidra 那套配齐,再折腾浏览器调试端口。
免费开源,上手门槛不算高。值不值得装,就看你想拆的东西是不是 JS 生态了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.