Skip to content

Virtualization of .NET software

Norbert Boros edited this page Jan 25, 2020 · 1 revision

Virtualization transforms the source code to the "bytecode" executed by a special interpreter that imitates a virtual machine with a specific set of commands. Therefore, virtualization leads to high and irreducible level of complexity of the resulting code, and if applied properly, the code protected with such a method does not contain methods to restore the original code explicitly.

The main advantage of virtualization is that a virtualized fragment of the code doesn't transform to machine language commands during execution, and this in turn prevents obtaining of the original code of the application by a cracker.

Reverse engineering of virtualized fragments is reduced to analysis of the architecture of a virtual machine, building a disassembler for the corresponding architecture of a processor imitated by the virtual machine, and analysis of the disassembled code.

Virtualization of .NET code is highly searched for, and until today it was not really possible due to the managed code of .NET framework.

Most people that used virtualization software(s) did not get their code actually virtualized, but only "packed" on top of it.

However today this is possible and a very strong method to prevent your code. You will not need any obfuscation if you virtualize your code, and your application will also run at normal speed.

This is how a virtualized application looks like:

Virtualization

As you can see nothing is visible anything or usable. The application is only usable when executed.

Using virtualization also has other benefits like Memory protection, Import protection, Resource protection, Debugger detection, Virtualization tools detection (VMware/Virtual PC), Serial Numbers, Watermarks, and many more.

Due to the fact that attackers do a lot of reading and researching to be up-to-date with the latest protection methods I will not post any further details here.

If you need commercial/private help or advice in virtualization of your .NET application I can do so for a fee.

Please contact me via my email or in case you cannot get in touch open an issue.

Clone this wiki locally