问题描述
我们正计划开发使用C#和MySQL客户端服务器应用程序。我们计划销售的产品像任何其他软件实用程序在货架上。我们担心我们的产品的反编译它确实有在可用性和捆绑功能方面某种超过我们的竞争对手优势。
We are planning to develop a client server application using C# and MySQL. We plan to sell the product on the shelf like any other software utility. We are worried about the decompilation of our product which does have some sort of edge over our competitors in terms of usability and bundled functionality.
我们怎样才能防止我们的反编译软件,所以产品的业务逻辑保持不变?
How can we prevent our software from decompilation, so the business logic of the product remains intact?
我们已经听说过反射器和其他反编译器,这使得我们的代码复制非常容易受到伤害。
We have heard about Reflector and other decompilers which makes our code very much vulnerable for copying.
我们的客户群是不是公司债券,但医生谁自己可能做不到,但我们的竞争对手可能要复制/禁用许可,甚至复制代码/功能,因此我们的产品的价值下降的该市场。
Our customer base is not Corporates but medical practitioners who themselves may not do it but our competitors may want to copy/disable licensing or even replicate the code/functionality so the value of our product goes down in the market.
任何建议,以防止这是值得欢迎的。
Any suggestion to prevent this is most welcome.
问候..
方尖碑
推荐答案
如果您部署.NET程序集到客户端的机器,某种使用反射器和类似的工具,反编译永远是可能的。
If you deploy .NET assemblies to your client machines, some kind of decompilation will always be possible using reflector and similar tools.
不过,这种情况是不是如果你写在本地C ++应用程序你会遇到什么重大不同。它总是可以反编译的事情 - 如果它是不可能的,处理器可能也不理解
However, this situation isn't materially different to what you'd encounter if you wrote the application in native C++. It is always possible to decompile things - if it were impossible, the processor couldn't understand it either.
你永远不会打败专家饼干 - 他们' LL把安全作为一个知识分子的难题需要解决单独的挑战。
You're never going to defeat the expert cracker - they'll treat your security as an intellectual puzzle to be solved for the challenge alone.
的问题围绕着有多难打败你的许可行为和的回归。投资的
The question revolves around how hard it is to defeat your licensing practices and the return on investment.
坐下来与一个电子表格,并通过可能出现的情况看 - 的危险比你想象的可能不太。
Sit down with a spreadsheet and look through the possible scenarios - the danger is probably less than you think.
像易用性因素在软件中可见任何用户观察 - 所以你会觉得很容易复制。但是,良好的用户体验是罕见的(而且很少复制好),因为大多数开发者(包括我自己)都没有像典型的用户。
Factors like "ease of use" are visible in your software for any user to observe - so you'd think it easy to copy. But, good User experience is rare (and seldom copied well), because most developers (myself included) are nothing like typical users.
我建议你专心制作一个黑客更难的工作,因为你永远不能使它不可能,只是不盈利的。
I'd suggest you concentrate on making the job of a cracker harder, cause you can never make it impossible, just non-profitable.
一种可能尝试:这是可能的预编译组件为本地代码作为安装过程的一部分。 Paint.NET这是否出于性能的考虑。我相信,一旦你这样做,你可以放弃原来的组件和使用进行了优化,原生代码版本。
One possibility to try: It's possible to pre-compile assemblies into native code as a part of the installation process. Paint.NET does this for performance reasons. I believe that once you've done this, you can discard the original assemblies and use the optimised, native code editions.
这篇关于如何防止任何C#应用程序的编译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!