This application is now freeware for various reasons. I first wrote the core of the Phoenix Protector for a company when I was 19. That project didn't work out for internal reasons not related to the quality of the product itself. I then wrote the Phoenix Protector, which was basically a new GUI for the now improved core. However, during the years (one has to consider that I was quite young when I developed the .NET obfuscator) I became ever more conscious that I didn't want to spend my life writing protections and also that I was not convinced by protections for the .NET technology in the first place. That's partly why I wrote Rebel.NET. By combining Rebel.NET with the DisasMSIL engine it is very easy to write a code obfuscator for .NET assemblies. The only thing which would be missing is name obfuscation and string encryption, which are even easier as protections. That's why I'm releasing the Phoenix Protector for free: nowadays, writing a commercial obfuscator doesn't make much sense to me. The code obfuscation provided by the Phoenix Protector is quite good when compared to other commercial obfuscators. I noticed that most obfuscators provide a very easy to reverse code obfuscation scheme. I'm not saying that the Phoenix Protector's code obfuscation can't be reversed. Every .NET code obfuscation scheme can be reversed somehow and the rebuilding task becomes very easy through Rebel.NET.
Created by Daniel Pistelli. The Phoenix Protector was created to protect .NET assemblies and it's the ideal solution for every .NET developer, due to its support of every kind of project and compatibility with every version of the .NET framework. It has all common obfuscation features to secure your code. It provides obfuscation features like Name, String and Control Flow Obfuscation. The last feature is particularly important since it prevents the .NET assembly from being decompiled into an understandable language. The Name Obfuscation is provided with an exclusion list. For more information: email@example.com.
Using the Name Obfuscation feature all the original MetaData names in a .NET Assembly are renamed to ones that aren't understandable. By simply obfuscating an assembly with this feature, the decompiled code will result uncompilable, since the obfuscated names can't be used in any .NET supported programming language. Of course, exclusion of user defined classes, methods, fields and properties is supported, since some public names can't be renamed to make certain assemblies work correctly.
Other features are the String and the Control Flow Obfuscation. The String Obfuscation makes strings invisible to decompilation and disassembling. It doesn't give a strong protection but it's a standard feature for .NET assemblies. The Control Flow Obfuscation is very important. In fact, it makes your code not decompilable by changing basic identification structures such as conditional blocks and loops in it. An attempt to analyze your code will cause the decompiler to crash or, at least, it won't generate any useful code.
Also, merging your assemblies could make your code even more secure. That's why the Phoenix Protector is shipped with an easy-to-use interface for Microsoft's ILMerge utility.
- Projects Interface
- Name Obfuscation
- Exclusion List for the Name Obfuscation
- String Obfuscation
- Control Flow Obfuscation
- Assemblies Merge Utility