保护交付给客户端的源代码

我最近了解到,处理我们某个核心产品安装的公司此前曾试图以恶意目的对供应商的工作进行逆向工程。 因此,我想了解更多关于如何保护我们的工作,到目前为止,我已经想到了以下内容:

1)显然使用混淆器。 问题是哪一个。

2)尽可能加密配置文件(尤其是端点信息)。

3)尽可能多地将逻辑移动到Web服务。

4)使用SSL进行数据传输。

该项目是用C#/ WPF编写的,并连接到IIS 7上托管的一组Web服务。我们用WIX打包我们的交付,WIX有什么要提供的吗?

据我所知,最终所有二进制文件都可以被黑客入侵,作为一个小公司,我们应该专注于编写代码而不是保护代码。 但这些小步骤将使其变得更难。 还有什么可以做的? 社区是否对此有任何建议? 将非常感谢内部/外部资源的链接。

以下是您的选择:

  • 不要给他们程序,他们已经滥用了他们的权力
  • 让他们签订许可协议,其中:
    • 他们可以对程序进行反向工程,甚至可以在法律团队定义的范围内查看源代码
    • 如果不引起法律伤害,他们就无能为力
  • 将代码作为开源发布。 你会感到惊讶,如果不禁止“禁果”,他们可能会感到无聊而不管它。
  • 将专有计算移动到您自己的服务器,实际上使您的程序成为瘦客户端。
  • 反向工程他们的一些工具。 进入一场冷战。
  • 专利库存,当你在野外看到你自己的代码时,公司会因违反你的专利而被遗忘。
  • 支付暴民让你的“朋友”出城
  • 给他们送一篮松饼,上面写着“PlZ st0p wit teh H4x”
  • 打扮成职业诚信的幽灵,拜访他们家中的每一位员工,并教他们有关道德和道德的课程。
  • 买断公司,解雇所有员工。

和@Chris一样多的协议。

聘请律师并制定相应的许可条款。

经常联系违规公司并询问他们是否有与您的软件类似的东西进行销售。 如果他们说是,请进行演示。 如果它与你的任何相似之处,请将它们归为遗忘。 这类诉讼的早期阶段之一是发现。 此时您将知道他们是否复制了您的代码。

Presto,问题解决了。

重点是,唯一真正的解决方案是使用法律系统。

实际上我认为你的4分能够很好地完成你所能做到的事情。 我要添加的唯一内容是许可证中的相应条款。

如果有人想偷,他们会偷。

编辑:哦,RE混淆器我讨厌推荐Red Gate经过他们的reflection器处理,他们的Smart Assembly非常好。