c# - 保护交付给客户的源代码

标签 c# obfuscation

我最近了解到,负责安装我们其中一款核心产品的公司之前曾试图对供应商的工作进行逆向工程以达到恶意目的。因此,我想了解更多关于如何保护我们的工作,到目前为止,我想到了以下几点:

1) Obviously to use an obfuscator. Question is which one.

2) Encrypt config files as much as possible (especially endpoint information).

3) Move as much of the logic as possible to the web service.

4) Use SSL for data transfers.

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

我知道最终所有二进制文件都可能被黑客攻击,作为一家小公司,我们可能应该专注于编写代码而不是保护它。但这些小步骤至少会让事情变得更难。 还能做什么?社区对此有更多建议吗?非常感谢指向内部/外部资源的链接。

最佳答案

以下是您的选择:

  • 不要给他们程序,他们已经滥用了权力
  • 让他们签订许可协议(protocol),其中:
    • 他们可以对程序进行逆向工程,甚至可以在您的法律团队定义的范围内查看源代码
    • 如果不招致法律伤害,他们什么也做不了
  • 将代码作为开源代码发布。你会感到惊讶,如果“禁果”没有被禁止,他们可能会感到无聊而不管它。
  • 将专有计算转移到您自己的服务器上,实质上是将您的程序变成瘦客户端。
  • 对他们的一些工具进行逆向工程。进入某种冷战状态。
  • 囤积专利,当您在野外看到自己的代码时,可以起诉公司侵犯您的专利。
  • 花钱请暴徒把你的“ friend ”赶出城
  • 送他们一篮子松饼,上面写着“PlZ st0p wit teh H4x”
  • 装扮成职业操守的幽灵,到每位员工家中拜访,并向他们传授有关道德和道德的类(class)。
  • 买下公司,解雇所有员工。

关于c# - 保护交付给客户的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417700/

相关文章:

c# - 中止阻塞线程的正确方法

c# - ssl 自签名证书错误 - localhost

PHP+CSS 混淆 - PHP ord THEN PHP strrev + CSS 反向文本,如何向后验证特殊字符?

javascript - 这段代码究竟做了什么?

c# - Json.NET 和混淆,反序列化不起作用

azure - 混淆的 DLL 和 Azure 包部署

c# - 如何 String.Join 装箱数组?

c# - 优雅地关闭工作线程

c# - 如何使用商店证书为 NET Core 2.1 正确设置 HTTPS

java - 迄今为止最好的 Java 反混淆工具 - [问题已关闭]