Software developers are often confronted with some real nuisances that affects many payed applications, as well as free ones: reverse engineering and cracks. To avoid having their code vulnerable to such threats, programmers will secure their software using dedicated protection tools.
One such utility is called Themida and it aims to provide strong security and great ease of use. Thanks to an intuitive interface, not too attractive but definitely practical, this app can safeguard any executable (EXE), library (DLL, BPL), OLE Control Extension (OCX) or screensaver file (SCR).
For every item loaded in Themida, the encryption keys and algorithms differ, while debuggers are also rendered ineffective. To fool the cracking tools and other similar devices, the application will add some junk code among the real instructions in your code. This makes it virtually impossible for disassemblers to discern and interpret correctly the real bits.
There are many advanced techniques employed by Themida, including anti-API scanners, anti-memory dumpers, Virtual Machine (VM) emulation or API-Wrapping, to mention just a few of them.
Setting the protection options for a loaded file is really simple because all one has to do is check the corresponding boxes and choose the desired options from the few drop-down menus. An interesting feature is the ability to block file and registry monitors, so when the protected application is installed, its components cannot be tracked by specialized tools.
Themida supports virtualization, so developers can choose the functions, entry point and processor specs. Another neat characteristic of this software is the customization of dialogs for various events, ranging from debugger or cracking tool discovery, up to internal errors/exceptions.
To sum it all up, Themida manages to supply a decent array of functions that offer really good protection for applications and libraries. Through a user-friendly interface all the changes can be made quite easily, without having to spend a lot of time with complex configurations.