In my program, it is important that obfuscated names be the same after each build, so that I can find differences in files for minimum upgrade size, otherwise users will have to download all dlls again for even every small upgrade. Is there an obfuscator out there that obfuscates each dll with the same result each time?

  • 5
    I doubt there is, because it's somewhat counter-productive to obfuscation. Someone who reverse-engineered part of your DLL can simply continue with the next version. Sep 12, 2017 at 12:47
  • 5
    Obfuscation is a lot less useful than you think and is a pretty brittle process. My suggestion would be to avoid using it and use the time to improve your product instead of configuring the obfuscator.
    – xxbbcc
    Sep 12, 2017 at 14:57
  • 2
    I have seen this question several times and it became interesting to me. Did you find such obfuscator? As far as I know, usually obfuscator changes the name every time. And each time they are different. Jan 24, 2019 at 19:28

3 Answers 3


My company's Thicket C# and VB.net obfuscators will generate new random names if you obfuscate everthing at once. If you obfuscate incrementally, then there isn't any choice, you have to preserve the obfuscation of already-obfuscated symbols. Our tools do that.

See Semantic Designs obfuscators.


By using Skater .NET Obfuscator you may obfuscate all your project's dlls and then merge/combine them into a single dll that will be distributed. Users will download only one dll for every small upgrade.


Another obfuscator which supports incremental obfuscation is .NET Reactor. This way always the same names are generated for classes and members (method, properties, fields).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.