Software Security Solution
Featuring Code Protection and Software Licensing
Dynamic Code Displacing
Extra protection on top of obfuscation
Try us, we are much more than just an obfuscator
So, you need some kind of protection to prevent other people from getting into your codes. Dynamic Code Displacing is the solution that can completely stop any attempt to reverse engineer your program. It is not an obfuscator but it provides additional layers of protection on top of obfuscation. Dynamic Code Displacing hides your il-codes until needed at runtime and then dynamically generated them behind dynamic methods. These dynamic methods can't be reflected by reflectors or trace into by CIL debuggers. The il-codes are hiden and encrypted using AES cryptography algorithm. Please see our product page for more detail.
Test drive our product now and you will see that the technology works well against all threats. None of your codes will be exposed to reverse engineering anymore. Don't settle for just obfuscation, check our product page for the right solution for you.
Overview of Archangel Cloak .NET in Code Protection
Beware of Reverse Engineering.NET Framework uses assembly to represent an executable unit (both application '.exe' and library '.dll'). Assemblies can include Common Intermediate Language codes (CIL), type information, meta-data, and resources. These assemblies are stored on disk in portable executable (PE) files. The Common Intermediate Language (CIL) is a higher-level language than the binary machine code, so they are easier to reverse engineer. The type information defines all classes and their members (both public and private), hence they can be easily reconstructed. With these information, a specialized tool can recover a good approximation of the original source code.
There are quite a few tools that can be used to reverse engineer .NET assemblies, i.e.: reflector, disassembler, or decompiler. Some of them can even covert .NET assemblies back to a high level language such as C#, C++, Basic, Delphi, Pascal, Ada, Smalltalk, etc.. The bad news is that many of these tools are not expensive, some of them are available as free-ware and some even come with the Microsoft .NET Framework SDK (ildasm.exe). With these tools, anybody can easily reverse engineer your executable files back to a high-level language of their choice. Then they can steal your idea, modify your codes, etc.. So, you need some kind of protection to prevent other people from getting into your program.
Introducing Archangel Cloak .NETArchangel Cloak .NET is an advance cloaking technology that implements a mechanism to hide .NET assemblies from reflector, disassemblers, decompilers, and Memory Dumper (Process Dumper). The Archangel Cloaking Technology is the solution that can completely stop any attempt to reverse engineer your program.
Cloaking MechanismsA cloaked assembly is created as an enclosure of the original assembly. This cloaked assembly has a compatible signature and identity as the original assembly. For security purpose, the actual structure of cloaked assembly and its component will not be revealed. This document will only describe the basic cloaking mechanism:
Detects whether the program is running under the debugger. This doesn't stop debugger from starting the program but it is capable of detecting the present of debugger before getting into the decloaking device and user codes.
Prevents any kind of tracing, stepping, and breaking in the middle of program. This doesn't prevent single stepping at the start up code but it will eventually terminate the attempt.
Prevents debugger from attaching itself to already running program.
- Data Encryption
The encryption completely conceals selected contents of .NET assembly, including il-codes, strings, meta-data, and resources :
- AES Cryptography Algorithm is used for encryption.
- The decryption key can be securely embedded in the assembly or stored separately as per software licensing requirement.
- The decryption key is hidden using highly complex stealth technique.
- The decloak wrapper and decloaking device are very well protected by anti-debugging, encryption, dynamic code hiding, and obfuscation.
- Data Compression
Data compression can reduce the overall size of your software, and at the same time provide some form of additional code protection.
- Dynamic Code Displacing
Dynamically generate codes as needed. The IL codes are hidden until needed which is then JIT compiled into native code. Method Encryption is used to hide these codes. The 'Dynamic Code Displacing' Technology prevents any Reflectors, Memory Dumper (Process Dumper), CIL Debuggers from extracting IL codes.
Obfuscation is included to ensure the highest possible protection against reverse engineering. It is the last line of defense. You can never have too much security.
Overview of Archangel Cloak .NET in Software LicensingArchangel Cloak .NET provide software publishers the capability to easily control the usage of your application according to your licensing requirement. We offer a few license models.
Software License ModelsUser interfaces for the following models can be customized as needed with minimum programming effort.
Identify illegal copy of your software by watermarking. A message can be hidden within an assembly. This message can then be shown by a hot key or a special program.
Expiration date can be set for your software so that it will be locked after the specified date. You can choose to use local machine time, Internet time, or both.
This is defined by number of days since the first run. The software will be locked after the specified number of days have passed. You can choose to use local machine time, Internet time, or both.
- Private Key Files
This is a simple form of license file. Unique private key file for each program is needed in order to run it. This would be useful in a situation where you want to distribute a program to some specific audience. Since the key is separated from the cloaked assembly, a program can be make publicly downloadable but only the people who have the appropriate key file can access it.
- License Files
Similar to private key file but with added security authorization mechanism, a license file can be authorized to a specific user or machine (PC). A valid license file is needed in order to run the program.
User name + serial + password can be associated with a program. It can also be made specific to a machine (PC). Valid password is needed in order to run the program. It can be used in conjunction with software activation to provide higher protection.
- Software Activation
The machine-license-id is derived from the above method and then can be used to request an appropriate activation code through on-line, phone, or email. For on-line activation, you will only need to implement an interface to your server, and we will do the rest.