javascript · 6
JavaScript 与 Electron
Electron 等打包后的 JavaScript 应用:解开 app.asar,借助 source map 梳理模块,顺着 preload 脚本和 IPC 通道一路追到原生扩展。其他几篇介绍在浏览器里解开 ASAR 文件、从压缩后的 bundle 恢复可读模块、用 source map 还原线上报错堆栈,以及发布前检查自己的 npm 包有没有泄露 source map。
ASAR 解包教程:在 Windows、macOS、Linux 上提取 app.asar
找到各平台上的 app.asar,用浏览器或 npx @electron/asar 解包,再按顺序读 package.json、main、preload 和 IPC 通道。
Electron 应用逆向分析实战:ASAR、preload 与 IPC(以 Joplin 为例)
在真实的 Electron 应用 Joplin 3.7.22 上逆向分析:复制并解开 app.asar,读 webPreferences 和 preload,梳理 IPC 通道,找出原生 addon,检查 fuses。全部是真实输出。
javascript-obfuscator(obfuscator.io)混淆代码怎么反混淆:14 组参数实测
obfuscator.io 反混淆能还原什么:字符串数组、base64 与 RC4、包装函数和控制流平坦化都能解开,renameProperties 和局部变量名还原不了。14 组参数实测。
JS 逆向实战:如何还原 webpack 打包后的源码(附 MCP 用法)
还原压缩过的 webpack bundle:从 .map 的 sourcesContent 直接取回源码,用 Wakaru 拆开模块表,再用 REA 梳理 chunk、模块和请求。全部是真实输出。
npm 包 source map 泄露:如何检查,以及生产环境怎么关闭 source map
发版前查出 source map 泄露:用 npm pack --dry-run 找 .map 文件,看 sourcesContent 暴露了什么,在生产环境关闭或隐藏 source map,并在 CI 里拦住。
如何用 source map 还原压缩后的 JS 报错堆栈
把 app.js:1:68 这样的压缩代码报错还原成原始文件、行号和名称:保留 hidden source map,在本地逐帧查询,并排查 map 与 bundle 对不上的情况。