带有 C++ 后端的 Electron - 安全吗?

Jac*_*k P 4 cracking electron

我已经用 Electron 编写了一个 UI,我想将它与我的 C++ 代码连接起来。但是,我将销售此产品,因此我想知道这是否使人们更容易破解我的 C++ 代码?显然我知道编译后的 C++ 无论如何都可以破解,但这会以任何方式影响它吗?

此外,在保持最大可能安全性的同时,最好的方法是什么?

谢谢。

编辑:这个怎么样?是否可以使用 C++ 作为 Electron.js 的后端?

EDIT2:澄清一下,我的 Electron 应用程序将显示在 C++ 程序中执行的操作的状态。因此,我需要将列表、字典、字符串等从 C++ 发送到 JS,然后 JS 将呈现它。此外,我的 Electron 应用程序上的按钮需要触发 C++ 代码中的操作,例如停止或启动程序的某些部分。

Rom*_*men 5

我已经用 Electron 编写了一个 UI,我想将它与我的 C++ 代码连接起来……我想知道这是否能让人们更容易破解我的 C++ 代码?

使用电子对保护 C++ 源代码没有任何意义。(您的知识产权)

但是,在电子中运行的 Javascript 代码很容易逆向工程,这让用户在试验 C++二进制文件时有一个良好的开端。使用缩小和混淆工具至少可以使这更难。

对于 C++ 端,至少可以通过以下两种方式将 C++ 连接到 Electron:

  • 通过动态链接到共享库 ( Node.js C++ Addons )
    在这种情况下,您的 C++ API 将是由共享库导出的函数。有许多工具可以检查共享库 (DLL) 并查看这些函数。
  • 通过使用某种进程间通信与另一个进程通信
    在这种情况下,您的 API 将取决于所使用的 IPC 方法。如果是 TCP/UDP 消息,您可以使用Wireshark检查进程之间的数据包。有多种方法可以检查通过任何类型的 IPC 的消息。

无论哪种方式,您的应用程序都必须通过编译后的二进制文件交付给最终用户。如果您实际将二进制文件提供给用户,则不可能防止二进制文件本身的逆向工程。

您还应该期望精明的最终用户可以访问其他工具,这些工具可以检查 API 并实现与该 API 对话的第三方代码。

此外,在保持最大可能安全性的同时,最好的方法是什么?

通过“最大可能的安全性”,我假设您指的是防止在其他应用程序中未经授权使用 C++ 代码。

您需要一个许可系统来验证使用 C++ 二进制 API 的应用程序。解释这到底是什么对于 Stack Overflow 来说可能是一个太大的答案,您将不得不对如何实施许可系统进行一些研究。

不过,理论上可能不可能开发出完美的许可制度。看看游戏行业,每发布一款新游戏,就可以绕过许可软件,这需要几天时间。唯一没有完全破解的软件架构是基于云的应用程序,它们实际上并不将带有业务逻辑的编译代码交付给最终用户的计算机。