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

18 thoughts on “Phoenix Protector 1.6 & Strong Name Signing”

  1. 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 “” 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.

  2. 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?

  3. 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.

  4. 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.

  5. 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.

  6. 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

  7. 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.

  8. 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…).

  9. 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?

  10. 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.

  11. 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?


  12. Hi, really the best free software i could ever find.

    There is some problem thagh when using it with mono.

    the library rename the methods to ?number? which i think gives problem with mono.

    It would be greet if there are other renaming option like charNumberChar which is valid when using it it with visual studio

    1. Hello Alen,
      thank you! Unfortunately, that project is no longer actively developed. I don’t even have a build environment for it. If you want to change the obfuscation string, I’m afraid you’ll have to patch the binary.

Leave a Reply

Your email address will not be published. Required fields are marked *