Saturday, April 9, 2011

Code Virtualizer v1.3.8 + LICENSE KEY




Code virtualization consists of the transformation of binary code from a specific machine into a different binary code that is understood by another machine. That is, the instruction set from a specific machine is converted into a new instruction set which is understood by a different machine. The following picture represents the transformation from a block of Intel x86 instructions into a new instruction set for another machine (specifically a RISC 32-bit CPU):





Figure 3: Transformation from x86 to RISC 32-bit CPU

Code Virtualizer can generate multiple types of virtual machines with a different instruction set for each one. This means that a specific block of Intel x86 instructions can be converted into different instruction set for each machine, preventing an attacker from recognizing any generated virtual opcode after the transformation from x86 instructions. The following picture represents how a block of Intel x86 instructions is converted into different kinds of virtual opcodes, which could be emulated by different virtual machines.





Figure 4: Transformation from x86 to multiple Imaginary CPUs

When an attacker tries to decompile a block of code that was protected by Code Virtualizer, he will not find the original x86 instructions. Instead, he will find a completely new instruction set which is not recognized by him or any other special decompiler. This will force the attacker to go through the extremely hard work of identifying how each opcode is executed and how the specific virtual machine works for each protected application. Code Virtualizer totally obfuscates the execution of the virtual opcodes and the study of each unique virtual machine in order to prevent someone from studying how the virtual opcodes are executed.


Code Virtualizer can be embedded inside your Win32 and Win64 applications and device drivers with ease. You just need to select which areas in your source code are going to be protected by Code Virtualizer. The following example shows how you can protect a block of code in a C application.






#include <stdio.h>
#include "VirtualizerSDK.h"

void main()
{
VIRTUALIZER_START // the area to protect starts here

printf("Hello World");

VIRTUALIZER_END // end of area to protect
}

The VIRTUALIZER_START/VIRTUALIZER_END macros are dummy macros which do not interfere with the execution of the original application. It's only in protection-time when Code Virtualizer will recognize those areas of code and will covert them into unique virtual opcodes, which are then emulated by a virtual machine when the protected application is running.

The following picture represents the image of an original compiled application (before being protected) and how it's transformed when it's protected by Code Virtualizer:



Figure 5: Original Application versus Protected Application

As the image shows, Code Virtualizer needs to embed the generated virtual machine at the end of the protected application in order to emulate the virtual opcodes when they are going to be executed. The size of the virtual machine can vary from 10 Kb to 30 Kb (depending on the complexity level selected), making no impact in the final size of the protected application.


Code Virtualizer is a powerful technology that can prevent someone from inspecting your sensitive code, such as your routines that validate an entered serial key for registering your application. Also, Code Virtualizer slightly modifies the PE header of the protected application, meaning you could put a compressor or other software protector on top of Code Virtualizer with no problems.

If you are a device driver developer and felt neglected when there was no solution to protect your device drivers, Code Virtualizer offers you the same technology to do so (for either 32-bit and 64-bit drivers) in the same way as your applications and DLLs.

Try Code Virtualizer today and start inserting the latest software protection into your Win32/Win64 applications and device drivers!

DOWNLOAD CODE VIRTUALIZER + LICENSE !!

Themida 2.1.1.0 + XBundler + LICENSE KEY




When an application is being created, the Compiler will compile the application source code into several object files made of machine language code. Then the object files are linked together to create the final executable.





Figure 1: Compilation of your source code

In the same manner that the source code of an application is converted into machine code at compilation time, there are tools that can convert a compiled application into assembly language or a higher programming language. These tools are known as dissemblers and de-compilers.







Figure 2: Decompilation of your application

An attacker can use a dissembler or de-compiler to study how a specific application works and what a specific routine does. When the attacker has a good knowledge of the target application, he can modify the compiled application to alter his behavior. For example, the attacker could bypass the routine that checks for the trial period in an application and make it run forever or even worse, cause the application to behave as if it was registered.


Software protectors where created to keep an attacker from directly inspecting or modifying a compiled application. A software protector is like a shield that keeps an application encrypted and protected against possible attacks. When a protected application is going to be run by the operating system, the software protector will first take control of the CPU and check for possible cracking tools (dissemblers or de-compilers) that may be running on the system. If everything is safe the software protector will proceed to decrypting the protected application and giving it the control of the CPU to be executed as normal.



The advantages of using a Software Protector are:

  • Protect an application against piracy.

  • Prevents attackers from studying how an application is implemented.

  • Will not allow attackers to modify an application to change its behavior .



Since software protectors were born, many attackers have centered most of their efforts on attacking the software protectors themselves instead of the applications. Many tools have been developed that aid in the attacking of software protectors. These attacks often result in the attacker obtaining the original application that is decrypted and has the protection wrapper removed.



Figure 3: Common software protectors philosophy

The main problem with software protectors is that they use protection techniques very well known by crackers, so they can be easily bypassed with traditional cracking tools.

Another important problem in software protectors is that they have restricted execution by the operating system, that is, they run with normal application privileges. Because of this attackers can use cracking tools that run at the same priority level as the operating system allowing them to fully supervise what a software protector is doing at a certain time and attack it in specific places.


With Themida® , we have centered in the main weakness that software protectors have thus providing a complete solution to overcome those problems. Themida® uses the SecureEngine® protection technology that, when running in the highest priority level, implements never seen before protection techniques to protect applications against advanced software cracking.



Figure 4: Themida® protection procedure

Click here to see all Themida® features.

SecureEngine® defeats all current cracking tools that can be used against protected applications and it will make sure that your protected applications are only run in safe environments.



Figure 5: SecureEngine® technology adds more strength to the existing protection

Click here to learn more about SecureEngine®



Software protection programming is not a very well known field for most programmers. Software protection techniques are not like "visible" features that can be seen and compared. Because of this most software protection authors could talk about impressive techniques that are included deep inside the protection scheme, when many times most of these techniques hardly exist or they are much simpler than what they seem.

Most software protectors reiterate a lot about using very strong cryptographic algorithms like RSA, Elliptic curves and AES hoping that the final user will believe that those protectors and the cryptic algorithms are unbreakable. This if far from the truth as software protection is very different from data protection. Even if a software protector encrypts the protected application with the most robust cryptographic algorithm, sooner or later the protected application needs to be decrypted in order to be run by the CPU. It is in this phase when most attackers will start their work by dumping the decrypted application from memory to disk thus not having to deal with the cryptographic algorithm and reconstructing of the original application.


In Themida® we want to be realistic about which weakness can be exploiting by attackers and what we really need to pay attention to protect an application with the highest security possible against software cracking.



DOWNLOAD THEMIDA + LICENSE KEY !!

VMProtect.Ultimate.2.06.Retail+Key


What is VMProtect?


VMProtect protects code by executing it on a virtual machine with non-standard architecture that makes it extremely difficult to analyze and crack the software. Besides that, VMProtect generates and verifies serial numbers, limits free upgrades and much more.

Five Reasons To Use VMProtect


Most of our competitors do not have the same innovative features and none has the same leading combination of features and cost efficiency. See why VMProtect is better:

VMProtect Virtualizes Code


Code virtualization is the next step in software protection. Most protection systems encrypt the code and then decrypt it at the application’s startup. VMProtect doesn’t decrypt the code at all! Instead, the encrypted code runs on a virtual CPU that is markedly different from generic x86 and x64 CPUs as the command set is different for each protected file.

VMProtect Supports Nearly All Executable Formats


VMProtect allows the protection of executable files (EXE, SCR), dynamic-link libraries (DLL, OCX, BPL) and drivers (SYS). You can use the same protection for your application, its plugins and even drivers!


VMProtect Supports 64-bit Code


Due to the growing number of 64-bit systems, it is essential that the protector supports them. We added the support of 64-bit applications, libraries and drivers in 2007, so everything is tested well and you can easily migrate to 64 bits.

VMProtect Supports Most Versions Of Windows


Unlike some competitors, VMProtect doesn’t rely on undocumented Windows features, so protected files work well on almost any version of Windows OS, starting from Windows 95. Both 32 and 64-bit versions are supported and there are no problems with DEP or UAC.

VMProtect Is A Complete Protection Solution


VMProtect allows the generation and verification of serial numbers. Both manual and automatic generation are supported. Serial numbers can be limited by time or date and locked to the hardware, while the free upgrade period can also be limited. VMProtect ensures it is physically impossible to run code without a serial number.

DOWNLOAD VMPROTECT + LICENSE KEY !