资讯动态

零源码逆向 Electron 应用:rea 的完整工作流指南

发布时间:2026/10/13 2:44:59 来源:尧图企业网站定制
零源码逆向 Electron 应用rea 的完整工作流指南【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea手里只有一个编译好的 Electron 安装包却想搞清楚它某个功能的实现reaReverse Engineer Anything把逆向变成一条可编排的链路它把逆向工具通过 MCP 交给你的 AI 助手或直接提供 CLI对目标做解析但不执行的静态分析再用被动/受控的运行时观察交叉验证每一条结论都附带证据Evidence、置信度和明确的局限说明。能力速览支持哪些目标产出什么rea 覆盖十余类分析目标但依赖程度差异很大——JavaScript/Electron 是最轻的一类。目标类型典型产出额外依赖原生二进制伪代码、汇编、字符串、符号、调用与引用关系Hopper / Ghidra / IDA 之一JavaScript / Electron模块、import、source map、路由、IPC 通道、native 插件关系组成 JavaScript Application Graph仅 Node.js 22.19 与 npm无需任何逆向引擎.NET 程序集元数据、CIL 指令、声明的原生依赖、构建版本对比无纯静态Android APK清单声明、类、反编译方法与引用无头 JADX 与完整 JDK网站 / 网络抓包页面结构、脚本、网络观察、HAR 载荷与源码位置Chrome 系浏览器mitmproxy可选WASM / EVM 字节码校验、节区、精确的 import/export WAT、分发选择器与参数推断WABT / 本地 hex 载体核心特性可以归纳为三点解析不执行静态分析读取本地文件或 ASAR全程不eval、不跑应用引导代码内容寻址模块、脚本、资源都用摘要标识压缩改名不影响身份与跨版本比对证据分层每个观察项都带 authority谁产出的事实、epistemic stateobserved / inferred / unknown / unavailable与独立置信度。两种接入方式MCP 还是 CLIMCP 接入适合让 AI 助手替你干活的场景。一条npx rea-agents setup会把 rea 的 MCP server 注册进你的 Agent支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等并安装配套的逆向工作流指令已有配置会自动备份。之后你只需用自然语言下任务例如理解某个应用的搜索功能给出证据并给我的项目写一个类似实现Agent 会自己调用工具、追问、解释并写代码见 installation.md。直接 CLI适合脚本化、批处理或不带 AI 的场合。全局安装后即可使用rea命令npm install --global rea-agents rea --help两条路径调用同一套服务产出同一格式的 Evidence 结果只是触发方式不同。临时使用也可以用npx -y rea-agentslatest command免安装执行。核心工作流四步从字节到特征链路1️⃣ 解析不执行静态重构analyze_javascript_application是静态入口CLI 与 MCP 共用同一服务electronCommands.ts。目标可以是解压后的应用目录也可以直接指向app.asarrea analyze-javascript-application /absolute/path/to/app.asar --json产出是内容寻址的 JavaScript Application Graphpackage.json主入口、preload 路径、Webpack/Rspack 模块工厂以 AST 字面量形式恢复、contextBridge.exposeInMainWorld的 API key、renderersend/invoke与主进程ipcMain.on/handle的字面量 IPC 配对、.node原生插件的请求路径与导出成员、本地 source map 声明。IPC 配对非常保守invoke只与唯一一个同字面量通道的handle配对动态通道永不配对多候选只报ambiguous而不画边。2️⃣ 运行时观察被动 主动两条通道静态图回答代码里有什么运行时观察回答跑起来发生了什么。被动通道附加到已运行的 Electron CDP 端点不执行 renderer 代码、不注入、不点击rea list-electron-targets http://127.0.0.1:9223 --json rea inspect-electron-page http://127.0.0.1:9223 TARGET_ID --include-script-sources --json返回 canonical 本地路径、frame 与 DOM 结构、脚本/资源的内容寻址摘要、worker 与 service worker 清单以及显式的完整性声明electron-observation.md。主动通道capture-electron-scenario则通过 Playwright Electron API 启动应用并拥有其生命周期接受 click / wait / renderer-reload / renderer-crash / deep-link 动作记录窗口与 WebContents 身份、进程指标、IPC 通道与参数形状元数据——payload 值永不保留。它有 60 秒启动截止SIGINT/SIGTERM 会请求取消并等待清理注意进程保留宿主文件与网络权限不是沙箱。3️⃣ 静动调和把运行时实例绑回静态图rea reconcile-javascript-runtime reconciliation-input.json --json这一步不重跑分析、不碰 CDP只消费已有的 Evidence。匹配规则按证据强度排序捕获源 SHA-256 映射位置 唯一内容摘要 唯一映射路径中等置信度多候选为ambiguous字节与静态候选冲突则为显式mismatch——路径永远不能覆盖摘要分歧。静态资产同时被分类为loaded、resident-in-loaded-asset、not-observed-in-capture或unknown其中not-observed-in-capture只表示没在这次捕获里出现绝不等于从未加载。4️⃣ 特征追踪沿一条种子找到整条链路rea trace-application-feature ./trace-input.json --json种子可以是 node ID、route、string、API、IPC channel、module 或 native export只接受字面量精确/子串匹配返回完整可达子图、终止路径与 authority 汇总。需要更深的语义级溯源闭包捕获、参数/返回值流、Promise 链、EventEmitter 注册/派发、node:child_process创建与所有权、配置来源与默认值时用trace-javascript-semantics。版本比对方面compare-application-versions用五级配对内容摘要 模块源摘要 节点身份 source-map 身份 结构指纹把模块归为 unchanged / added / removed / changed / unknown函数指纹忽略局部变量名但保留语法、字面量、运算符与对象键所以压缩改名不影响跨版本对齐。输出怎么读证据、置信度与 unknownrea 的每条结果都是一个 Evidence 信封解读它只需记住三个维度authority出处artifact bytes原始字节、AST analysis语法观察、static inference静态推断、passive CDP runtime被动运行时、cross-layer-reconciliation跨层调和等。静态推断的边永远不会声称运行时执行过。epistemic state认知状态observed / inferred / unknown / unavailable 四态。unknown 不是占位错误而是图里的一等公民节点。confidence置信度exact / high / medium / low / unknown与 authority 独立标注无法确定精确遗漏数时omitted_count输出null而不是猜测值。贯穿全文档体系的原则只有一句未知不等于缺席。捕获里没有某个模块不等于它不存在或没被执行缺失的 Evidence 不会静默变成这里没有代码的证明。读结果时先问这条边是谁说的authority再看它有多确定confidence最后留意limitations里显式列出的覆盖缺口。边界与局限它明确不做什么rea 不是一键反编译器边界被写在每条 Evidence 里AST 语法是观察入口解析与调用关系是推断二者分开标注source map 的原始源永远不作为运行时字节匹配的主证据compare_javascript_export_shapes中的动态调用、动态展开与解析恢复项保持 partial / unknown主动场景捕获拥有进程生命周期但不改变其权限——不是沙箱native.node边界交给 Hopper/Ghidra 等 provider 深潜静态层不会隐式启动或切换 provider。量化基准见官方 showcaseDX-Ball 的音效 pan 计算重建通过了 3,205 个原始 x86 用例、复现全部 63 个编译函数字节Notion 剪贴板桥接案例从preload.js的__electronApi与notion:clipboard:write字面量通道出发静态追踪到主进程 bundle 中clipboard.write(data)的接收链路notion-clipboard.md。重建产物的验证也回到字节与行为export-web-scripts把捕获脚本落盘再生成 manifest再用静态分析重新解析形成捕获 → 落盘 → 再解析的往返闭环verify:javascript-runtime 则要求操作者提供真实 Electron 运行时先清理再演练 IPC、renderer crash/reload 与 deep-link fixture。什么时候用它只拿到安装包、想理解某功能实现到什么程度、且需要结论可复现可引用时rea 的链路最对路setup注册 Agent → 静态重构 → 运行时观察被动或主动→ 静动调和 → 特征追踪。反过来如果你要的是直接执行目标应用看它行为或者只需要一个反编译出的源文件那不是它的定位。它真正的价值是把逆向从考古变成工程能力看到感兴趣的功能理解到字节级把理解写进自己的代码再用原始字节与行为把重建结果验证一遍——每一步都有据可查。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑