42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
Markdown
# which-electron ![](https://img.shields.io/badge/Status-WIP-orange)
|
|
|
|
Try to find out which Electron version is bundled inside an application.
|
|
|
|
## Usage
|
|
|
|
```shell
|
|
$ npm install which-electron
|
|
$ which-electron Google.Play.Music.Desktop.Player.OSX.zip
|
|
Version Constraint: <v7.0.0
|
|
Multiple guesses from fingerprinting:
|
|
[
|
|
'v3.1.10', 'v3.1.11',
|
|
'v3.1.12', 'v3.1.13',
|
|
'v3.1.5', 'v3.1.6',
|
|
'v3.1.7', 'v3.1.8',
|
|
'v3.1.9'
|
|
]
|
|
|
|
$ which-electron HashTag-win32-x64.zip
|
|
Found Version file: v7.1.10
|
|
Fingerprint: v7.1.10
|
|
|
|
$ which-electron Google.Play.Music.Desktop.Player.deb
|
|
```
|
|
|
|
## How does it work?
|
|
|
|
We attempt multiple pathways:
|
|
|
|
1. The presence of a `electron.asar` file denotes an electron version `<v7.0.0`, since later releases dropped that file and embedded it in the binary instead.
|
|
2. A `version` text file is sometimes included in the final binary.
|
|
3. The `node_modules/electron/package.json` file is sometimes present.
|
|
4. A lookup table of [hashes from various electron releases](https://github.com/captn3m0/electron-fingerprints/) is used to guess the version. (WIP)
|
|
5. Get the electron version from the electron binary (WIP)
|
|
|
|
Note that this can be run against untrusted binaries as it does not _try to run the application_.
|
|
|
|
## License
|
|
|
|
Licensed under the [MIT License](https://nemo.mit-license.org/). See LICENSE file for details.
|