在交付给客户端时保护源代码

时间:2011-06-20 21:23:29

标签: c# obfuscation

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

  

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

     

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

     

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

     

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

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

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

3 个答案:

答案 0 :(得分:15)

以下是您的选择:

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

答案 1 :(得分:3)

尽可能与@Chris达成协议。

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

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

Presto,问题解决了。

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

答案 2 :(得分:2)

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

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

编辑:哦,RE混淆器,因为我讨厌在他们的反射器处理后推荐红门,他们的Smart Assembly非常好。