Skip to content

4. 精通 electron 源码保护

electron-vite 源码保护介绍 https://cn.electron-vite.org/guide/source-code-protection

在 Windows 上配置 Electron 应用的浏览器调试

在 Windows 上运行由 Electron 打包的.exe程序时,想要进行浏览器调试,你需要为程序添加一个特殊的参数,来启用 Chromium 的开发者工具。下面是一些步骤和参数:

1. 命令行参数:

  • 你需要在启动 Electron 应用时添加 --remote-debugging-port=9222 参数。例如,如果你的 Electron 应用名为 my-app.exe,你应该在命令行中运行如下命令:
my-app.exe --remote-debugging-port=9222

2. 浏览器访问:

  • 一旦你的 Electron 应用运行,并且远程调试端口已经开放,你可以打开你的浏览器,访问 http://localhost:9222 来打开 Chromium 的开发者工具。

3. 连接到 Electron 应用:

  • 在打开的 Chromium 开发者工具页面中,你会看到你的 Electron 应用的实例列表。点击你想要调试的实例,然后你就可以使用开发者工具来调试你的 Electron 应用了。

通过上述步骤,你应该能够在浏览器中调试你的 Electron 应用。这个过程允许你利用 Chromium 的强大开发者工具来检查和调试你的 Electron 应用,就像你在浏览器中调试一个网页一样。


GitHub 源码保护相关 issues

https://github.com/electron/electron/issues/3041

在 GitHub 上的 Electron 仓库中的 Issue #3041 中,讨论的主题是关于源代码保护的。一个用户(Penagwin)提出了一个问题,他注意到自上次关于使用快照来保护源代码的讨论已经过去了一段时间,而 NW.js 和 enclosejs 已经找到了在不包含源代码的情况下做快照的方法。他想知道是否可以再次查看这个问题【22†(GitHub)】。

Electron 的一名成员(zcbenz)回应说,NW.js 和 enclosejs 是通过将 JavaScript 代码编译成 V8 的快照代码并强制关闭优化来实现源代码保护的,但这种方法大大牺牲了性能。简单的基准测试显示,速度下降了大约 50%,但考虑到 V8 所做的各种优化,实际应用程序的性能会更差。他还提到,V8 没有提供源代码保护的计划,所以这种情况在未来不会改变。在 Electron 的方面,他们不想为了源代码保护而牺牲性能,所以他关闭了这个问题,并标记为"不会修复"【22†(GitHub)】。

从这个讨论中,我们可以看到 Electron 团队对于源代码保护的立场是不想牺牲应用程序的性能,而且由于 V8 引擎的限制,Electron 在源代码保护方面可能面临一些困难。

其他的相关链接

github bytenode https://github.com/bytenode/bytenode

基于 Node.js Addon 和 v8 字节码的 Electron 代码保护解决方案 https://zhuanlan.zhihu.com/p/376638202

Electron 官网支持的命令行开关 https://www.electronjs.org/zh/docs/latest/api/command-line-switches