如何在 Electron 应用程序中显示 Electron 环境的版本?

Joh*_* S. 13 electron

我想知道一个 Electron 桌面应用程序(例如 Signal Desktop 或 Visual Studio Code)正在使用哪个版本的 Electron。有没有一种简单的方法——比如在开发控制台中输入命令?

谢谢!约翰内斯

(为什么?我想看看它是否受https://www.trustwave.com/Resources/SpiderLabs-Blog/CVE-2018-1000136---Electron-nodeIntegration-Bypass/ 之类的错误影响)

fee*_*nda 22

您可以,如果应用程序启用了开发人员工具并启用了 nodeIntegration。以VS Code为例:

打开开发者工具,在控制台选项卡中,输入

process.versions.electron
Run Code Online (Sandbox Code Playgroud)

这里的文档:https : //electronjs.org/docs/api/process

或尝试从 userAgent 字符串解析版本

navigator.userAgent.match(/Electron\/([\d\.]+\d+)/)[1]
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Wya*_*740 7

在类 Unix 或 Linux 系统下(可能在使用 Cygwin 或 MSYS shell 或 WSL 的 Windows 下,但这尚未经过测试),您甚至可以使用该程序,strings甚至可以用于在未启用开发人员工具的情况下构建的程序。

user-agent基本上,您只是在二进制文件本身中搜索字符串。

目前,我已经能够执行以下操作:

$ strings example-electron-app-binary-file | grep '^Chrome/[0-9.]* Electron/[0-9]'
Chrome/98.0.4758.141 Electron/17.4.7
Run Code Online (Sandbox Code Playgroud)

该正则表达式搜索以 开头的字符串Chrome/,后跟任意数量的数字和点字符、单个空格,然后Electron/是其后的任意数字。

如果您的系统使用 UTF-16 字符串,这很可能不会起作用,但由于浏览器倾向于在内部使用 UTF-8,因此它仍然有可能在 Windows 电子二进制文件上起作用。


gib*_*gib 5

打开开发人员工具并在控制台选项卡中键入:

navigator.userAgent
Run Code Online (Sandbox Code Playgroud)

例如在Discord我得到的应用程序中:

Mozilla/5.0 ... Electron/9.3.5 ...
Run Code Online (Sandbox Code Playgroud)