假设我有一个代码,其中我每年更新一次(也就是说,我每年为代码付费)一次。我想建立一个到期的日期,作为一种手段的知识产权保护,并作为一种机制,以防止被欺骗的任何合同交易。
特别是,我想在代码中混淆到期日,如下所示:
如果(当前年度<= 2024) { //做一些有用的},则{ //做一些虚拟的}
我的代码相当长(比如5000行),主要是故意的--所以这样理解并不容易。尽管如此,我还是想构建一些代码,如果我的交易在一年内失败(比如说今年是2022年,我在2023年就被欺骗了),那么客户端只能使用代码直到另一年(比如2024年)。
作为我交易的一部分,我每年都会做一次更新。因此,如果我在2023年还能拿到工资,也就是说,我还没有被骗走,那么我可以把“当前年度<= 2024年”改为“当前年度<= 2025年”。
有什么简单的方法可以在我的代码中隐藏2024年或2025年这样的年号--这样我的客户就无法找到一个明显的硬编码年份?
特别是,我正在寻找一个数学公式或正则表达式或类似的东西?
我尝试了很多谷歌,但我没有找到任何确切的答案,我的问题。
如果有帮助,我的代码在C#中,根据与我的客户的协议,他们需要实际的代码(而不是编译的DLL)。客户端知道,一旦像我这样的人觉得他们不再需要我,他们就会随机解雇他们(并且可以继续使用我的代码而不付钱给我)--这种行为在我们这个行业很常见。
(如果这是个错误的论坛,我深表歉意,但我的生计取决于此。)
发布于 2022-06-10 09:06:07
正如评论中提到的,版权保护真的很困难,而且整个公司都围绕着它建立起来。但无论如何,大多数保护措施都被规避了。
Obsfucation可以提供帮助,但它也会使调试问题变得痛苦,而且如果您承诺交付源代码,则可能会违反合同。
如果您交付源代码,这将使规避更容易,但更重要的是,如果客户有能力和动机,实际作弊。为了使这更困难,您也许可以在代码库中洒上一些代码,比如If (current year <= (2020 + 4)) throw ...在尽可能多的地方,使查找所有检查变得更加困难,但这只会增加绕过检查所需的工作量,而不是使其不可能,甚至是非常困难。
我建议你要么:
https://stackoverflow.com/questions/72568974
复制相似问题