首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过插入模糊的过期代码来保护IP

通过插入模糊的过期代码来保护IP
EN

Stack Overflow用户
提问于 2022-06-10 04:03:13
回答 1查看 40关注 0票数 0

假设我有一个代码,其中我每年更新一次(也就是说,我每年为代码付费)一次。我想建立一个到期的日期,作为一种手段的知识产权保护,并作为一种机制,以防止被欺骗的任何合同交易。

特别是,我想在代码中混淆到期日,如下所示:

如果(当前年度<= 2024) { //做一些有用的},则{ //做一些虚拟的}

我的代码相当长(比如5000行),主要是故意的--所以这样理解并不容易。尽管如此,我还是想构建一些代码,如果我的交易在一年内失败(比如说今年是2022年,我在2023年就被欺骗了),那么客户端只能使用代码直到另一年(比如2024年)。

作为我交易的一部分,我每年都会做一次更新。因此,如果我在2023年还能拿到工资,也就是说,我还没有被骗走,那么我可以把“当前年度<= 2024年”改为“当前年度<= 2025年”。

有什么简单的方法可以在我的代码中隐藏2024年或2025年这样的年号--这样我的客户就无法找到一个明显的硬编码年份?

特别是,我正在寻找一个数学公式或正则表达式或类似的东西?

我尝试了很多谷歌,但我没有找到任何确切的答案,我的问题。

如果有帮助,我的代码在C#中,根据与我的客户的协议,他们需要实际的代码(而不是编译的DLL)。客户端知道,一旦像我这样的人觉得他们不再需要我,他们就会随机解雇他们(并且可以继续使用我的代码而不付钱给我)--这种行为在我们这个行业很常见。

(如果这是个错误的论坛,我深表歉意,但我的生计取决于此。)

EN

回答 1

Stack Overflow用户

发布于 2022-06-10 09:06:07

正如评论中提到的,版权保护真的很困难,而且整个公司都围绕着它建立起来。但无论如何,大多数保护措施都被规避了。

Obsfucation可以提供帮助,但它也会使调试问题变得痛苦,而且如果您承诺交付源代码,则可能会违反合同。

如果您交付源代码,这将使规避更容易,但更重要的是,如果客户有能力和动机,实际作弊。为了使这更困难,您也许可以在代码库中洒上一些代码,比如If (current year <= (2020 + 4)) throw ...在尽可能多的地方,使查找所有检查变得更加困难,但这只会增加绕过检查所需的工作量,而不是使其不可能,甚至是非常困难。

我建议你要么:

  1. 出售一种不需要每年付款的许可证,这显然需要更大的前期支付,以及用于年度功能更新或其他托管源代码的较小的支付,而不是将其作为交付品。如果您的公司破产或变得不可传染,这将向客户释放源,但在其他情况下仍然无法访问。理想的保护双方。这至少会使反向工程更多的difficult.
  2. Keep作为一个在线服务的一些关键功能。因此,如果与服务的通信被阻塞或绕过,程序将无法正常工作。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72568974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档