encryption - encrypting a .Net application and assemblies -


I have an encryption / copy security question.

I am writing an application for a company, uses a dongle. Please tell me that software security is useless, or let me fly it in the free of charge, or at any time to do this It is useless to spend; This is not a philosophical question about the legitimacy of software security, such as how.

As I understand, the first step in breaking the dongle protected piece of software is to call the dongle from the code (i.e., executable patch) as well as I understand it, I 'strong in NIT Name 'so that the application and assembly can be protected. As explained.

Is there a strong nomenclature to ensure that my application can not be easily compromised? Or do I need to use any type of encryption library? If I want to use a library, which one, or where can I find information about setting it?

The next step, of course, is to put important algorithms on the dongle. I realize that this is the only obstacle for dedicated firecrackers, but as the market share increases, the speed bump will help us reach the point where the sting of the stolen is not felt so intensely (I hope) .

Assembly to keep strong naming under control of an attacker at any time The machine was not designed. From:

The following example closes the verification for a assembly named myAssembly.dll.

sn -Vr myAssembly.dll

The design of strong names is to provide target name specificity and users against an attacker (not the publisher) is safe. If the user wishes to disable all the strong name checks, or if he wants to sign the Assembly again with his key by sorting his signature, then nothing is said to technically stop him from doing so.

Your assemblies are not very useful with just loading the encrypted file because the decryption code can not be encrypted and therefore a simple target for reverse engineering.

As mentioned by other posters, what you want stories . You probably have one such tool: Visual Studio (at least 2005 and 2008) comes with a community version of preappropriate solutions. Microsoft also has its own "product".

There are some technical disadvantages in disarray:

  • This can complicate your build process. You need disorganized and temporary construction, since the latter is not debuggable.
  • I have an error dialog for unexpected exceptions where users can click on the "Copy Details" and I know some technical stack trace information, however, you can forget about being useful to anything Are there.
  • If your code uses its use then there is a good chance that things will be broken into obscure build because the internal type and member names are not preserved.

Comments