Reverse Engineering Prevention

Protection methods dotNet Protector implements

 

Conventional Obfuscator

This method consists in obfuscating the code by changing the name of the methods, properties, classes, namespaces...

This action can prevent the code from running correctly:

It makes impossible to use the reflection api on obfuscated names, even for internal reflection (inside the same assembly).

 

Obfuscation is enabled in dotNet Protector by checking 'obfuscate name' in the protection tab. dotNet Protector changes names for all symbols that are inaccessible outside assembly (internal, private).

 

Integral Obfuscation

In the case of a program (.exe) which does not have has to be referred by others assemblies the obfuscation can also apply to public symbols.

This integral obfuscation is enabled by checking 'obfuscate public names'.

 

Advanced Protection

The goal here is to obfuscate method bodies. This advanced protection complements obfuscation, it can even be compatible with third party obfuscators.

When advanced protection is enabled, all methods have the same body : throw new ApplicationException

All methods are then encrypted an decrypted at run time. Once compiled, a méthod encrypted again. Thus your assembly is never completely decrypted (unless your assembly has only one method).

Advanced protection requires dotNet Protector runtime to run your assembly. Without the runtime, encrypted version of methods will run (ApplicationException).

 

Embedded Runtime

Programs (.exe) protection can be achieved at an additional level by embedding dotNet Protector's runtime. The generated exe is then a mixed assembly (contains at the same time native code and managed code). The assembly protected according to the method of advanced protection, with or without obfuscation is transformed into a netmodule and is also emedded in the generated exe. During execution, the protected module is loaded in memory and run. This option exempts to you to deploy dotNet Protector's runtime, since it is included in the protected exe.

Send comments about this topic to PV Logiciels