我用Electron写了一个UI,我想把它和我的C代码连接起来。然而,我将出售这个产品,所以我想知道这是否使人们更容易破解我的C代码?显然,我知道编译的C++无论如何都可以被破解,但这会以任何方式影响它吗?
此外,在保持最大可能安全性的同时,最好的方法是什么?
谢谢.
**编辑:**这个怎么样?Is it possible to use c++ as back-end for Electron.js?
**EDIT2:**为了澄清,我的Electron应用程序将显示在C程序中执行的操作的状态。因此,我需要发送列表,字典,字符串等。从C到JS,然后将其呈现。此外,我的Electron应用程序上的按钮需要触发C++代码中的操作,例如停止或启动程序的某些部分。
1条答案
按热度按时间zwghvu4y1#
我写了一个用户界面在电子和我想连接到我的C代码.我想知道这是否使人们更容易破解我的C代码?
使用电子对保护C源代码没有任何意义。(您的知识产权)
不过,在electron中运行的JavaScript代码将 * 非常容易 * 进行逆向工程,这让用户在尝试C * 二进制 * 时领先一步。使用缩小和模糊处理工具至少可以让这变得更难。
对于C端,至少可以通过以下两种方式将C连接到Electron:
在这种情况下,您的C++ API将是由共享库导出的函数。有许多工具可以检查共享库(DLL)并查看这些函数。
在这种情况下,您的API将取决于所使用的IPC方法。如果是TCP/UDP消息,则可以使用Wireshark来检查进程之间的数据包。有很多方法可以检查通过任何类型的IPC的消息。
无论哪种方式,您的应用程序都必须以编译后的二进制文件交付给最终用户。如果您实际上将二进制文件提供给用户,则不可能防止二进制文件本身的反向工程。
您还应该期望,精明的最终用户将能够访问其他工具,这些工具可以检查API并实现与该API对话的第三方代码。
此外,在保持最大可能安全性的同时,最好的方法是什么?
通过“最大可能的安全性”,我假设你指的是防止未经授权的C代码与其他应用程序一起使用。
您需要一个许可证系统来验证使用C二进制API的应用程序。对于Stack Overflow来说,解释这到底是什么可能太大了,你必须对许可系统是如何实现的做一些研究。
然而,从理论上讲,建立一个完美的许可证制度是不可能的。看看游戏行业,它只需要几天的时间,为授权软件成为规避每一个新的游戏,是释放。唯一一个还没有完全被破解的软件架构是基于云的应用程序,它们实际上并没有将编译后的代码与业务逻辑一起交付给最终用户的计算机。