【问题标题】:How do I keep my code obfuscated from my enterprise client?如何使我的代码与企业客户端混淆?
【发布时间】:2020-01-23 21:10:14
【问题描述】:

如今的软件可以分为两类:在客户端基础架构上运行(例如在企业软件的情况下,例如 Splunk 或 Tibco),或者在软件提供商的基础架构上运行(例如在 Facebook 的情况下,其中您需要使用他们的 API 来访问后端)。

在第一类中,客户支付许可证费用并接收软件,以便在他们选择的场所的自己的机器上运行。客户拥有实际的代码和软件。

第二类,软件驻留在外部某处,只能通过 API 访问。客户端不拥有该软件,只能在 API 允许的范围内使用它。

我的问题是:在上面的第一类中,实际代码是如何对客户端隐藏的?

假设我用 Python 构建了一个非常棒的分析引擎,用于分析输出日志。企业客户有兴趣将其用于其内部应用程序。但是,出于安全原因,他们坚持我的引擎必须在他们自己的机器上运行。如果我屈服并给他们我的 Python 代码,那么我将冒着我的知识产权的风险。

在这种情况下,我是否需要将所有代码重写为 C++ 之类的编译语言,以便在编译期间对其进行混淆?或者有没有办法将它保存在 Python 中,但以另一种方式保护源代码?

更新: 鉴于下面的答案,在这种情况下,开发客户端托管应用程序(即:上面的第一类)的更有效途径是先用更方便的语言(如 Python)编写概念证明,然后将这些想法和改写成C++?

【问题讨论】:

    标签: python security enterprise saas


    【解决方案1】:

    简短的回答是你几乎不能。您可以采取变通办法,但最终几乎任何人都可以对您的代码进行逆向工程,无论您如何混淆它。

    您最好的选择可能是使用 PyInstaller 之类的东西,看看您是否只能包含 .pyc 文件。这并不能一直保护你,但至少让逆转变得很痛苦。你甚至可以先找到一个混淆器来运行它,但我对那部分了解不多。

    【讨论】:

    • 那么您是在告诉我大多数客户端运行(例如:企业)软件是用 C++ 之类的编译语言编写的吗?
    • 不,我不是。我只是想说 Python 没有保护您的源代码的机制。即使使用编译语言,您仍然可以通过一些努力对其进行逆向工程。归根结底,无论您做什么,您的法律保护都将比您的技术保护强得多。
    【解决方案2】:

    类似于上面@gabeappleton 的建议,将Python 代码编译成EXE。我经常使用cx_freeze 并取得了很好的成功。这些论坛上有很好的记录和合理的支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2017-11-24
      • 2010-10-29
      相关资源
      最近更新 更多