Hello dear community :)
It is not a secret that that Java/C# and few other languages could be reverted back from compiled machine code to the original coding language
I was personally doing it many times and it is easy to do as 1-2-3.
Recently I start playing "Rust" which is new survival horror MMO hit in steam and which is created in Unity and C#
After I was very much annoyed by cheaters I start reverse engineering this game to see what the story there and modifying original logic of the game which allow me to do crazy stuff like:
- See all objects/players/NPCs names in zone u are in (Rust using uLink for network communication where in uLink zone is predefined area or square of set size - see more uLink documentation for clear understanding)
- Remove hunger
- Remove fall damage
- the most craziest one is to kill any Player in your current zone remotely by spoofing player ID, just make it to suicide, or shoot from the bow in emptiness but redirect damage to player which u dont even see
- many other nasty stuff
I could accept that for some people it could be fun to annoying other players and play with cheats, however when it comes to developers or innocent people it is not fun at all
I mention "Rust" as example just because I personally manage to modify it, however I assume that it is possible for any game made in C# as it could be easily reverse engineered.
So the question is **how to protect?** what are **your ideas and suggestions?**
Mine ideas so far (assume we have online game with server/clients):
On launch and connection to server make online request for each client to submit their files size (to bytes) and make sure that DLL files are not modified (as any modification of DLL would change it size at least for few bytes)
But then again, in case if we have full access to the DLL code and we can modify it, then that kind of request could be canceled, or even if server will not allow to continue without submitting this data, then not cancelled but statically overwritten to return value which server would accept.
All this cheating very much annoying players and if developers do not fight with it the population of players going down very quickly, for example "Warface" is great example.
**How to protect your libraries from being modified by unfair players?**
↧