python - 如何保护 Python 代码不被用户阅读?

标签 python licensing obfuscation copy-protection

我正在用 Python 开发一款软件,将分发给我雇主的客户。我的雇主想要使用限时许可文件来限制软件的使用。

如果我们分发 .py 文件甚至 .pyc 文件,(反编译和)删除检查许可文件的代码将很容易。

另一个方面是我的雇主不希望我们的客户阅读代码,担心代码可能被盗或至少是“新颖的想法”。

有什么好的方法可以解决这个问题吗?

最佳答案

“有没有好的方法来处理这个问题?”不可以。没有任何东西可以防止逆向工程。甚至 DVD 机器上的固件也被逆向工程并且 AACS Encryption key裸露。尽管 DMCA 将其定为刑事犯罪,但还是如此。

由于没有任何技术方法可以阻止您的客户阅读您的代码,因此您必须采用普通的商业方法。

  1. 许可证。契约(Contract)。条款和条件。即使人们可以阅读代码,这仍然有效。请注意,某些基于 Python 的组件可能会要求您在销售使用这些组件的软件之前支付费用。此外,一些开源许可证禁止您隐瞒该组件的来源。

  2. 提供重要值(value)。如果您的东西非常好——而且价格让人难以拒绝——就没有动力去浪费时间和金钱进行逆向工程。逆向工程很昂贵。让您的产品稍微便宜一些。

  3. 提供升级和增强功能,使逆向工程成为一个糟糕的主意。当下一个版本破坏了他们的逆向工程时,就没有意义了。这可能会走向荒谬的极端,但您应该提供新功能,使下一个版本比逆向工程更有值(value)。

  4. 以极具吸引力的价格提供定制服务,他们宁愿付钱让您构建和支持增强功能。

  5. 使用过期的许可证 key 。这很残酷,会给你带来坏名声,但它肯定会让你的软件停止工作。

  6. 将其作为网络服务提供。 SaaS 不涉及向客户下载。

关于python - 如何保护 Python 代码不被用户阅读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856247/

相关文章:

java - Proguard混淆错误

java - XML 密码混淆

python - 如果其中的任何列表至少包含前一行的一个值,则过滤一个 numpy 数组

python - 使用 Extra 和 Filter 的 Django OR 查询

visual-studio - 每个用户或每台机器的 Visual Studio 许可

licensing - GPL 如何适用于必需但非分布式的代码?

python - Qtreewidgetitem 内部字段

python - 如何将二维查找表映射到数组(python)?

c# - 特定于机器的 Winforms 许可

javascript - 从混淆的 javascript 代码创建 javascript 代码