如何从已编译的 Electron 应用程序中获取源文件?

Posted

技术标签:

【中文标题】如何从已编译的 Electron 应用程序中获取源文件?【英文标题】:How can I get source files from a compiled Electron application? 【发布时间】:2020-07-07 06:23:24 【问题描述】:

我如何解压一个使用 Electron 构建的适用于 Mac OS 的 .app 应用程序?我想查看源文件,但不知道如何访问它们。

【问题讨论】:

-> "electron unpack" / "electron decompile" 非常感谢!我正在搜索这些关键字。 致downvoters:我认为这是***的一个合理问题,除了可能this one之外,我没有看到重复,但那个没有收到任何有用的答案。 【参考方案1】:

通常,Electron 应用程序是使用 Electron 的 asar 工具捆绑的。通常,您可以使用相同的工具解压缩这些应用的源代码。

如果应用是使用不同的工具捆绑的,您需要自行研究捆绑过程是否可以轻松逆转。

如果没有安装asar,可以通过npm安装:

npm install -g asar

然后尝试使用asar解压源码:

cd /Applications/Slack.app/Contents/Resources
mkdir example-sourcecode
asar extract app.asar example-sourcecode

我在this blog post找到了以上信息。

【讨论】:

非常感谢。我这样做会得到这个错误:“错误:EISDIR:对目录的非法操作,读取” @RedouanAzizim 对不起,我没有要测试的 Mac OS 设备。听起来您可能需要覆盖某些文件权限,或者将您的终端会话提升到更高权限的用户。 不起作用。会给你 ` [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds` 错误。 也许尝试不在 Applications 文件夹中执行此操作,这通常需要管理员身份验证才能进行更改。可以解压到其他文件夹吗?

以上是关于如何从已编译的 Electron 应用程序中获取源文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从已登录用户处获取“B2C JWT 访问令牌”?

如何从已删除的消息中获取嵌入内容?

使用 Vue 开发 Electron 桌面应用入门

从已编译的应用程序生成单个 exe 文件

Electron 在编译版本中不显示图像

从已填充的存储中获取数据