

Here is an excellent mono injection tutorial by all
UNITY GAME CHEAT ENGINE CODE
It has the same effect as hooking a function basically, you run your code and the games original code. Mono injection is a technique of writing your own C# assembly and injecting it into the game engine, you essentially override game functions with your own functions. Mono Injection - the best way to hack unity games If the game has integrity checks, which most good multiplayer games will, this will not work. If the game doesn't have integrity checks, and especially for single player games you can simple modify the Assembly-cSharp.dll using a decompiler and save it. We don't have tutorials for it but a bunch: But here is a IL2CPPDumper as well:Ĭheat Engine has basic features to view Unity game data as well. If your game is using IL2CPP skip this tutorial and just use native game hacking methods is probably best. This is more efficient and makes hacking the games more difficult so we are seeing more and more games use it.

Some games are using IL2CPP which compiles the game code to C++ then to assembly, which makes decompiling with dnSpy and mono injection impossible. Even with the names stripped, it is easy to reverse engineer functions like this. Other times the developer will strip these out or obfuscate it. Sometimes it will include all the names of the structures, variables and functions. Not all the functions and structs the game uses will be in the Assembly-CSharp.dll. Keep in mind all the game engine code won't be in there, it's just the game logic. You will see the structures and the functions. You can statically analyze the game code using a. Thanks providing a ton of information on reversing this game If you're thinking of using the native route of hacking and not using mono injection please view this thread to understand how much work it is. What's good about this is you can easily de-compile and modify this file using dnSpy which is a. Second thing you will see is that Unity games code is located in an Assembly-CSharp.dll module and not in the main EXE. I don't recommend trying to go after multilevel pointers in most Unity games. For that reason pattern scanning and hooking is typically easier. Game engines add another layer of abstraction and often utilize alot of inheritance, overloading and polymorphism which makes reversing them more difficult.įirst thing you will notice is that it is hard to find pointers that work after you restart the game in Unity games. They have their own methods of loading dynamic code and data. But game engines are large infrastructures that load and run the game logic that the developers of the actual game create.
UNITY GAME CHEAT ENGINE WINDOWS
The way memory is mapped and the executable is loaded into memory is predictable and follows the same pattern every time, it's just how the PE file format and the Windows loader works. In a regular native game you can typically find pointers and offsets and use them easily. Any game that uses a modern game engine requires a special approach and Unity games are no exception. The bug is somewhere in the engine, and there is no visible way ATM to overcome or circumvent it.Hacking Unity Games is different than native games. I tried using "expert mode" which has death automatically enabled every game load, and still experienced all the bugs associated with party member death and adventurer recruitment.

The "Death" setting isn't as principal as I suspected. I understand this is a soliloquy at this point, but unfortunately the nice guys at Obsidian don't allow new forum members to post on their forums without prior moderator approval, so I'm relegated to the considerably less active Steam board. Which may naturally conflict with the fact that some party members are *dead*, leading to all sorts of freaky stuff, up to and including *ghosts* (shadows of supposedly dead party members), and of course to the fact that the dead guys still "occupy" party slots, conflicting with newly recruited adventurers and bugging the saved games. Apparently the "Death" setting in game options gets turned off every time a save game is loaded. I may have pinpointed the root cause of this bug.
