How can I obfuscate my c# code, so it can't be

2019-01-05 03:21发布

I release a bunch of tools for free, but recently I have began to sell an application, that has private research, and people have been able to get my source code, and one person publically released my entire source. I spent a lot of time on this program, just to have someone crack it, and release my entire source.

How can I go about protecting my program? I have tried HWID, but people are still able to crack it. I know I am limited by C#, but it the most convenient to use. I just need a way to protect my programs from people trying to do this.

4条回答
We Are One
2楼-- · 2019-01-05 03:49

There's Dotfuscator (http://www.preemptive.com/products/dotfuscator/overview). But the best solution in some cases is to offer what you do as a web site (Software as a Service).

Consider this tool for example to convert VB to C#: http://converter.telerik.com/

Or this tool to format JSON: http://jsonformatter.curiousconcept.com/

This may or may not work for you. I don't know what the nature of the software you're trying to protect is.

查看更多
我只想做你的唯一
3楼-- · 2019-01-05 03:55

No, your code needs to contain the information needed to decrypt itself, its an impossible problem to solve.

Your best solution is to put your intellectual property on a server in the cloud that only you have access to. Give your customers a unique login, audit their access to check for abuse, off load as much grunt work onto your customers machines, but keep your algorithms locked into the cloud.

查看更多
虎瘦雄心在
4楼-- · 2019-01-05 03:58

You could have a look at the many obfuscation tools that are out there, for example the ones mentioned in https://stackoverflow.com/questions/805549/free-obfuscation-tools-for-net (note: question currently unavailable for view).

EDIT: the above linked question has been deleted and thus isn't available for viewing. As a reference here is the list of currently working links posted in the above question extracted with help of some power user:

http://gapotchenko.com/eazfuscator.net
http://orangeheap.blogspot.nl
http://confuser.codeplex.com (succeeded by https://yck1509.github.io/ConfuserEx/) http://ntoolbox.com

查看更多
够拽才男人
5楼-- · 2019-01-05 04:01

Well, the problem with languages like C#/Java is that they are generally much easier to de-obfuscate. The way to secure this is generally to put this stuff into a webservice, but you said you couldn't really do that. What about porting specific non-trivial functions over to a language like C, and obfuscate that. Your C# program could then use reflection to make calls to this external/unmanaged dll. It would increase the difficulty for de-obfuscating, but the problem is that if someone wants it bad enough, they can figure it out as it is client-side.

It may be that legal action is the only real solution here, but this is not a site for legal advice, and I am not qualified to give it if it were.

Additionally, this could be a business decision. Consider Making your software open-source and post a donation link. I am also not qualified to give business advice, but this is worth considering. It may actually increase your revenue, not to mention the other benefits that come with releasing open-source software.

查看更多
登录 后发表回答