|
|
Rustemsoft introduces the Freeware Light Edition of the renowned Skater .NET Obfuscator, a tool for .NET code protection. This Light Edition is the free version of Skater .NET Obfuscator, available at no cost to protect your .NET applications for both personal and commercial use. Skater .NET Obfuscator incorporates all known software protection techniques and obfuscation algorithms.
If you need to periodically obfuscate your .NET products, Skater .NET Obfuscator is the perfect solution for you.
|
|
Application vulnerabilities, Intellectual Property theft, and revenue loss are among the most serious risks for companies today. Business Software Alliance statistics reveal that four out of every ten software programs worldwide are pirated.
|
Unauthorized access to source code can provide a quick backdoor into systems, business processes, and revenue streams. The global piracy rate has increased by 40% over the past years, with nearly $11 billion in losses. This poses a significant threat to software producers and the global economy. With over half a million developers having some level of access to .NET reengineering tools, which provide near-instant access to source code from any .NET binary, organizations across industries are turning to obfuscation to manage these risks. Over the years, several software protection techniques have been developed, and code obfuscation is among the most promising.
|
|
|
Code obfuscation protects software from unauthorized reverse-engineering attempts.
The primary functions of any software protection technique are to detect pirate attempts to decipher or tamper with software, protect against such attempts, and ensure that if the protection fails, the software's functionality degrades in an undetectable manner.
|
Cardinal obfuscation techniques:
|
Private and Public members names obfuscation.
It scrambles the names of classes, methods, variables, and other assembly members, making reverse engineering much harder.
Some Skater settings generate names that prevent recompilation. Public members in DLL libraries are usually kept from obfuscation as they are intended for external use. However, if you're sure some public members won't be accessed externally, you might consider obfuscating them. For EXE executables, you can treat the assemblies as self-contained and aggressively obfuscate all possible names, including Public Members.
String encryption.
The string encryption function allows you to encrypt literal values of string data types. You can choose to encrypt all strings or mark specific ones for obfuscation and select a cryptographic method for encryption. Only the specified strings will be encrypted/obfuscated.
Since strings can provide clues for reverse-engineering, protecting them is essential. While it won't completely stop a determined hacker from decoding, it complicates their task. For example, someone attempting to break a licensing routine would focus on licensing-related strings to locate the code. Skater makes this harder by encrypting strings in your .NET assembly, inserting a decryption routine, and calling the decryption code at runtime to retrieve the original strings.
Control Flow obfuscation intended to stop decompilers and deobfuscators from functioning correctly.
Control Flow obfuscation mitigates reverse engineering by scrambling .NET method code. The algorithm distorts and reorders IL code in the assembly, inserting misleading branch instructions while maintaining code semantics. This essentially turns method implementations into "spaghetti code," making it harder for human hackers and decompiler tools to interpret.
Control Flow obfuscation involves adding extra instructions, which increases the size of the output assembly. If maximum code protection isn't required, you might disable this feature to keep the executable size smaller.
Control Flow obfuscation deters reverse engineering and tampering by adding false conditional statements and misleading constructs to confuse and disrupt decompilers. It decomposes the source code into fragments, applies various transformations, then reassembles and obfuscates them based on the set criteria. The final output preserves the same execution results as the original code, despite the transformations.
|
|
|
|