简体   繁体   English

.NET的.NET混淆:我如何保护我的代码?

[英].NET obfuscation of a DLL: how can I protect my code?

I'm in the process of exploring a partnership with a small company. 我正在与一家小公司探讨合作关系。 The company is looking for an algorithm that can improve their profits and I have some prototype software that can help them. 该公司正在寻找一种可以提高利润的算法,我有一些原型软件可以帮助他们。 The core of my software is very confidential and if the company gets a hold of it, then they will certainly not need me. 我的软件的核心是非常机密的,如果公司掌握它,那么他们肯定不需要我。 I'm definitely going to sign a contract with them and I will have legal protection, but I still want to put as many protective layers between them and my "trade secret" as possible. 我肯定会和他们签订合同,我会得到法律保护,但我仍然想在他们之间加上尽可能多的保护层和我的“商业秘密”。

I might have to work close with their developers to automate my algorithm and integrate it in their system, but I want to offer the core functionality in a DLL so I can protect my "trade secret", yet still have the ability to work with their developers. 我可能必须与他们的开发人员密切合作,以自动化我的算法并将其集成到他们的系统中,但我想在DLL中提供核心功能,这样我就可以保护我的“商业秘密”,但仍然有能力与他们合作开发人员。 Is obfuscation worth it given my situation? 鉴于我的情况,混淆是否值得? Are there other reasonable alternatives? 还有其他合理的选择吗?

I don't know if this is an option for you, but you might consider providing the algorithm as a web service using WCF or Xml-rpc or REST or something. 我不知道这是否适合您,但您可以考虑使用WCFXml-rpcREST等提供算法作为Web服务。

With HTTPS , of course. 当然,使用HTTPS

That way they can use the algorithm, but they can never get at your code. 这样他们就可以使用算法,但他们永远无法获得您的代码。

Should work as long as the algorithm doesn't require too many round trips or huge amounts of data being transfered. 只要算法不需要太多往返或大量数据被传输,就应该工作。 Which is to say, as long as the algorithm doesn't need to be used in real time with a responsiveness of < 100ms or so. 也就是说,只要算法不需要实时使用,响应度<100ms左右。

Option 1: Dotfuscator or a similar product 选项1:Dotfuscator或类似产品

http://www.preemptive.com/products/dotfuscator/overview http://www.preemptive.com/products/dotfuscator/overview

Option 2: Use C or C++ for the sections covered by trade secrets. 选项2:对商业秘密所涵盖的部分使用C或C ++。

Obfuscation will give you more sense of IP protection. 混淆将为您提供更多的IP保护意识。 Check this free tool out, it may be a good starting point http://www.ntcore.com/phoenix.php 检查这个免费工具,它可能是一个很好的起点http://www.ntcore.com/phoenix.php

I think what will really protect your IP is contract and law. 我认为真正保护您的知识产权的是合同和法律。 Make sure you have it clearly define at the start of the engagement and have an agreement draw up that will protect your interest. 确保在参与开始时明确定义,并制定协议以保护您的利益。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM