我们都知道您无法开源和自由分发软件的情况-我正处于其中一种情况。
我有一个应用程序,该应用程序由许多二进制文件(从C源代码编译)和python代码组成,并将它们全部包装到系统中。该应用程序以前曾用作云解决方案,因此用户可以通过网络访问应用程序功能,但没有机会接触存储二进制文件和代码的实际服务器。
现在,我们要交付系统的“本地”版本。该应用程序将在我们的用户实际拥有的PC上运行。我们知道一切都可能被破坏,但是至少要保护应用程序免受可能的复制和逆向工程。
我知道docker是一个出色的部署工具,所以我想知道:可以创建加密的docker容器,而没人能看到容器文件系统中存储的任何数据吗?是否有解决此问题的已知方法?
另外,也许有不基于docker的知名解决方案?
您要问的是所谓的混淆。它与Docker无关,是一个非常特定于语言的问题。对于数据,您始终可以进行所需的处理,但是尽管您希望阻止攻击者,但它永远不会安全。即使最新的加密方案也无济于事,因为该程序(您提供的程序)必须包含密钥。
C通常很难逆向工程,对于Python,您可以尝试pyobfuscate和类似的东西。
对于数据,我发现了这个问题(关键字:加密文件游戏)。