Phoenix Protector 1.6 & Strong Name Signing
Due to the high request, I took 20 minutes of my time and updated the Phoenix Protector, bringing it to the version 1.6. The only addition to this version is the possibility to re-sign assemblies obfuscated by the Phoenix Protector.
The reason why this wasn’t possible in past version of the Phoenix Protector is that the space for the signature was removed from the assembly and the “sn.exe” tool provided by Microsoft isn’t able to re-create that space.
Now, it is possible to tell the Phoenix Protector from the options whether to remove or not the Strong Name Signature when obfuscating an assembly:

By default the Strong Name Signature is not removed.
After obfuscating anassembly, just use to re-sign the “sn.exe” tool this way:
sn.exe -R assembly.exe your_sns.pfx
Tags: .NET, Phoenix Protector
May 26th, 2009 at 15:19
Thank you for your excellent work. I have tried the Phoenix Protector. The names obfuscation is using “?” and numbers.
I also look the source code from “http://www.tallpdf.net/” using reflector. I think invisible character will be better.
when i re-sign my assmbly:
sn.exe -R assembly.exe your_sns.pfx
sn report an error. I will post the message tomorrow.
May 27th, 2009 at 04:31
Thank you! I have 3 dll assembly, they are all strong name signed. Afer protected, two of them can be opened using Red Get’s .NET reflector (can re-sign ), But one can not open with error: Invalid public key size, and can not re-sign:
Failed to read token from assembly — The public key from assembly ‘ABC.dll’ was invalid.
Can you help me?
May 27th, 2009 at 04:35
The difference is the ABC.dll is COM Visible, ad ABC.dll reference other two assembly.
May 28th, 2009 at 14:27
Hello, I honestly have no idea what the problem might be. It might have to do something with alignment or so. Check if the same space for the signature is mantained in the protected assembly.
October 27th, 2009 at 18:13
Work great on the GUI, however, it doesn’t work well with command line. For example, the -p option will takes any files without any errors, and even with the right proj.ppe file, it didn’t convert the obfuscate the assembly. Every time the code is compiled, it seems to change the checksum value stored in the ppe file. As a result, because of the mismatch checksum, the assembly does not obfuscate. Please help.
October 27th, 2009 at 23:28
The checksum is not there for code obfuscation, it should work without problems. Many people use the Phoenix Obf through command line, of course you have to pass a valid .ppe file, which you can create through the GUI.
November 7th, 2009 at 20:13
hi, your obfuscator works principially very well with my assemblies , but when the code is recompiled, it ignores all exclusions I made to a specific assembly, even if the assembly did not change in code (maybe the checksum did?): when i reopen a phoenix project file which references the new compiled assembly, the items of the exclusion list aren’t checked any more…
Why not identify the excluded items via user readable reflection name ?
Using v1.7.0.1
November 8th, 2009 at 12:14
Yes, it’s because of the checksum. I didn’t do so because of lack of time and since the development was never continued I didn’t add this very important feature. I know it’s annoying, but it’s not possible for me to improve that tool right now.
November 8th, 2009 at 14:32
that’s a pity, because your obfusecator is the only one (of all common known commercial and free I’ve tried so far) which works with ALL of my assemblies, including even WPF ones ! (but the latter only with exclusion list…).
November 16th, 2009 at 10:03
Is it capable of adjusting the names in assemblies if the references were obfuscated?
December 19th, 2009 at 20:46
Hi,
I am tried using Phoenix Protector for Windows Mobile assemblies. I did not work.
WM ignores those assemblies. The software shuts down without any error message.
Can anybody help? Did I have a wrong setting somehow?
December 20th, 2009 at 04:29
As far as I know Devon, it never worked on win mobile. I have never tested it, and I hadn’t the time to. It’s probably due to a format/alignment/limitation of the compact framework. Or probably it wants some ARM specific stuff in the executable which I don’t provide.
January 26th, 2010 at 06:25
I ran the app on an old version of an exe I saved from a build about six months back and it ran fine. I tried to run it on the current version of the same exe that I just built from VS2008 and it says, “Couldn’t protect “myapp.exe”. What are the typical reasons for this? Can I troubleshoot this?
Thanks
January 26th, 2010 at 09:45
I actually have no idea. I mean I can’t tell by this description.