Show HN: Il2cpp-modder – Generate DLL injection projects for hacking Unity games
Hi, how are you doing?
I&#x27;ve recently started diving into reverse engineering stuff. And with all the fuss around Among Us lately, it seemed like a fun thing to hack.<p>I&#x27;ve noticed that a lot of basic hacks are based on replacing some method implementation to return a fixed value, or do nothing, or writing to some memory position to change the normal game behavior to your advantage. So maybe something like that could be done for Among us.<p>First I learnt that it was a Unity il2cpp based game and found Il2CppDumper, a great tool for getting class names and method&#x2F;field offsets in the game. That was great for understanding <i>what</i> I needed to modify. But then I didn&#x27;t know <i>how</i> to modify it.<p>So I read a lot of great tutorials here and there and noticed that there were a lot of beginner hackers (like me) struggling with this part. There is quite a bit of low level programming stuff like assembly for function hooking, pointer arithmetics and that sort of thing.<p>After kinda figuring it out, I&#x27;ve managed to make a simple mod that allowed you to change the speed of the little guy you control by hooking some functions and changing some fields in the player object.<p>Then it hit me: the process to write the code to perform that sort of mods in any il2cpp based game would be exactly the same. Get your Il2CppDumper output =&gt; hook functions =&gt; do your modded stuff.
So as a personal fun weekend challenge, I decided to make a tool that would be simple to use and would allow anyone to make basic mods without programming at all. And thus, il2cpp-modder was born.<p>Given the output from Il2CppDumper and some rules telling il2cpp-modder what you&#x27;d like to mod, it will generate C++ code to perform DLL injection in your game and run your mods. There are 4 built in mod types:
- Make a function return a fixed value (eg, always return true, false, 0, 1, 99999, etc)
- Set an object field to any value you want (eg, keep your player health at 100)
- Replace a function call arguments (eg, always call your coins setter with 99999)
- Replace a function implementation (eg, just rewrite the whole thing. Programming required!)<p>Maybe this can encourage less experienced hackers to try and make their first successful mods!
I really hope this project can help someone. I had a lot of fun building it and I&#x27;ve learned a lot for doing it.<p>If you have a chance to try it, let me know if you found it useful! Or if you had any trouble I&#x27;ll try my best to help you.