[RELEASED v5.5.0] Obfuscator - Protect your game source code!

There can be two reasons for this behavior:

  1. You have added an empty value in the “Skip following Namespaces”, resulting in the skipping of all namespaces/classes/members from obfuscation.
  2. You have activated the “Vice-Versa Namespace Skipping”-Setting. Without entering namespaces in the above list, so all namespaces/classes/members will be skipped from obfuscation.

If this is not the reason, please contact me directly via mail at guardingpearsoftware@gmail.com and we will have a look at your issue together.

Hi! I recently purchased this and so far it is working great in my testing. Very easy to setup and use. One question I had. I am using netcode for game objects and it is by default not obfuscating NetworkBehavior classes or any of the methods marked with ServerRPC or ClientRPC attributes. I assumed that was because it would break netcode. However, after doing some basic testing by forcing some of them ServerRPC methods to be obfuscated on the client but leaving them not obfuscated on the server it seems to be working fine. These are the most important methods to obfuscate to make cheating harder. Is there a way to make it obfuscate them without me having to mark every one with the ObfuscateAnyway attribute? Thanks!

@SamTheBay thank you for your question! So far it is the only option. But this is good to know, I will support a customization of the obfuscation of networking in the next update.

Great! Thank you! One more feature request that I would love to see is some way to shuffle the function names with each build. For example, if you could provide some kind a parameter in the settings like a seed integer. Using that seed, the names of each class/method would be shuffled in the build. This way, with each release, cheaters would need to start over with their reverse engineering.

One more issue I have run into. Everything is working fine when I build locally on my machine with the Editor. However, when I build using Unity Cloud Build the game is not able to start. It give a bunch of errors saying that it can’t find the MonoBehaviors like this…

The referenced script (AbilitySlot) on this Behaviour is missing!
The referenced script (BasicTooltipProvider) on this Behaviour is missing!
The referenced script (DetailContent) on this Behaviour is missing!
The referenced script (BasicTooltipProvider) on this Behaviour is missing!
The referenced script (SkillSlot) on this Behaviour is missing!
The referenced script (ColorSwatch) on this Behaviour is missing!

I have turned off all caching but that didn’t help. Somehow, it seems that the obfuscation isn’t getting to all binaries in this case.

I am currently reworking the renaming features to allow more customization. And your idea is a good idea, I will include it also!

I am currently out of office and back after December 1st, so my help is currently a little bit limited, but I will still try to help as much as possible. Could you send me the following via mail, for your cloud build?

  1. Which Unity Editor version do you use?

  2. What is your build target?

  3. Which Obfuscator version are you using?

At guardingpearsoftware@gmail.com, this will help identify the reason of your issue.

Hello, I have a question.
Can Obfuscator Pro export a name translation file?
i.e. PlayAnimation > arxfdge

Player.log shows obfuscated log, I want to unobfuscate them in my PC.

Yes you can store and load a mapping file. To do so, go to the Obfuscator settings, in the Optional tab, you find an option to either store it as file or upload it to a web path/url.

1 Like

Hello, is it possible to provide a button to set a custom thesaurus and then rename it by randomly picking words from the thesaurus and combining and splicing them together?

What would be the point of that? A thesaurus is meant to provide synoyms which mean the same thing. Obfuscation specifically wants to hide the meaning. Nobody is looking or working with obfuscated code except the potential hacker / cracker / thief and the point of obfuscation is to make it has hard as possible for them to understand the code.

Thank you for your question. You can define a custom character set how the Obfuscator should rename the symbols, but you cannot (and will not) pass whole names here.

Hi! Can you share some info about your asset protection asset please? Why it was deprecated and will it be available in the future? Thanks

The current state of AssetProtection was no longer compatible with newer Unity versions so I had to deprecate it at the moment and refactor it. Also I was unsatisfied how it worked. And when I am not happy with a product I do not want to sell it. It has to work simple and efficient. But yes there will be a new version, but it will take some time.

Release of Obfuscator 5.4.1: Internal - Update

  • Improvement: Some internal optimizations to make the Obuscator more robust.

Release of Obfuscator 5.5.0: Enums & Structs - Update

Features:

  • [Feature-2025-2] Obfuscation of enum and struct class fields can now be customized to meet specific needs. The field settings have been extended to include dedicated settings for fields in enums and structs.
  • [Feature-2025-1] Obfuscation of enum and struct classes can now be customized to meet specific needs. The class settings have been extended to include dedicated settings for enums and structs.

Improvements:

  • [Imprv-2025-1] The Obfuscate Anyway attribute now includes support for structs. Additionally, it allows for random obfuscation names when the passed name field is left empty or null.

Bug Fixes:

  • [Bug-2025-1] Fixed an issue where internal classes were only obfuscated when obfuscation of private classes was enabled, but not when obfuscation of internal classes was enabled. This has been corrected and internal classes are now obfuscated correctly. Notably, nested internal classes were correctly recognized and handled during this process.