用途:面向 Electron 打包桌面应用的逆向分析,覆盖 resources/app.asar 结构解析、主/渲染进程 JS 逻辑还原、原生 .node 模块、密钥与通信逻辑提取,以及 V8 字节码 .jsc 的识别与边界判断。不适用于纯浏览器扩展、脱离 Electron 的混淆脚本、Cocos 场景 .jsc 或仅需通用二进制初勘。
主要能力:用 @electron/asar 解包(list/extract/extract-file),也可免工具按 asar 头部 JSON 目录的 size/offset 还原;读 package.json 的 main 定位主进程入口,梳理 require 链与 ipcMain handler;还原渲染进程 bundle(美化、字符串定位、混淆层另行处理);用 file/readelf 识别 .node 动态库并导入反编译器;用 @electron/fuses read 检查 RunAsNode、EnableNodeCliInspectArguments、EnableEmbeddedAsarIntegrityValidation、OnlyLoadAppFromAsar 等开关;用 --inspect 与 --remote-debugging-port 配合 chrome-remote-interface 做 CDP 动态调试,Runtime.evaluate 取 process.versions、process.env、require.cache;识别 devtools/inspect 检测并绕过。
使用方式:先验证 node/npm,再按需安装 @electron/asar、chrome-remote-interface、bytenode、@electron/fuses。静态解包可免沙箱;运行应用、连 CDP、加载 .jsc 均按动态处理,默认沙箱与网络隔离。Linux 无显示环境用 xvfb-run -a 启动。
限制:.jsc 是 V8 字节码快照,非 JS 文本,格式未文档化且随 V8 版本变化,目前无公开反编译工具,跨版本加载会崩溃;Electron 42+ 主进程 .jsc 需 bytenode electronMain 模式编译。asar 完整性校验开启时替换归档会导致启动失败。fuse 翻转会改二进制并破坏签名。contextIsolation、sandbox、nodeIntegration 决定注入面。单实例锁与 CDP 端口需按实际响应处理。