Skip to content

Commit

Permalink
Add ArmDot to .NET obfuscators list
Browse files Browse the repository at this point in the history
  • Loading branch information
mafiesto4 committed Oct 2, 2024
1 parent 90c865f commit 50496d2
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion manual/editor/game-cooker/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Depending on the scripting language used in the game project it might be more or
### C#

Game code is compiled into .Net assemblies - separate for each binary module such as `Game.CSharp.dll` (default). Thus no source code is deployed with the game. However, C# DLLs can be easily decompiled with the various tools which make it insecure. Possible ways to overcome this:
* [Obfuscation](https://en.wikipedia.org/wiki/Obfuscation_(software)) tools (eg. [Eazfuscator.NET](https://www.gapotchenko.com/eazfuscator.net), [ConfuserEx](https://yck1509.github.io/ConfuserEx/), [neo-ConfuserEx](https://github.com/XenocodeRCE/neo-ConfuserEx), [Babel Obfuscator](https://www.babelfor.net/products/babel-obfuscator/), etc.) - those can mangle code-flow, variable names, constants, and types. But if the class typenames or field/properties get renamed it might lead to incorrect deserialization when loading scenes or prefabs. For this case [Serialization Callbacks](../../scripting/serialization/index.md) can be used to load the data from the asset for runtime.
* [Obfuscation](https://en.wikipedia.org/wiki/Obfuscation_(software)) tools (eg. [Eazfuscator.NET](https://www.gapotchenko.com/eazfuscator.net), [ConfuserEx](https://yck1509.github.io/ConfuserEx/), [neo-ConfuserEx](https://github.com/XenocodeRCE/neo-ConfuserEx), [Babel Obfuscator](https://www.babelfor.net/products/babel-obfuscator/), [ArmDot](https://www.armdot.com/), etc.) - those can mangle code-flow, variable names, constants, and types. But if the class typenames or field/properties get renamed it might lead to incorrect deserialization when loading scenes or prefabs. For this case [Serialization Callbacks](../../scripting/serialization/index.md) can be used to load the data from the asset for runtime.
* [Code signing](https://en.wikipedia.org/wiki/Code_signing) - after project compilation all game DLLs can be signed with a code-signing certificate which allows validating the file upon the execution to prevent hacking game files (at least partially).
* Critical-code could be moved into C++ scripts which are compiled directly into the platform bytecode.

Expand Down

0 comments on commit 50496d2

Please sign in to comment.