How to Mod an Android Game
So since the first time I started modding games I had received many requests on making tutorials on how I mod games, I had also made a course where I taught how to do it with video tutorials and support, but many requested a free tutorial and that to be explained in the simplest way possible. So today I will just do that.
Before we begin you will need a PC running Windows, and some few tools, I will list all the things you will require with the download link below so make sure you download them and install. Try to make a modding folder and put all of the necessary tools there in one place so it is easy.
Make sure you read each and every step throughout the post carefully.
2) IL2CPP Dumper – Download From Here
You can download any version you want, if the version gives you any trouble or error try a different one, but the newer the better always.
3) DNSPY – Download From Here
Download the ZIP file depending on your Windows Architecture. Extract it and you will find the exe file dnspy that you have to run.
4) HEX Editor – Download From Here
5) JAVA Oracle JDK – Download From Here
6) WINRAR – Download From Here
Notepad++ is also needed but not for this tutorial. I am sure most of you have it installed, if not then just install it, it’s useful.
Once you have all these downloaded and ready to use, then we will proceed to modding our first android game, it is very easy do not worry. I know right now it looks overwhelming to download all this stuff and may look confusing but it is not, once you understand the basics, everything will seem easy.
The game we will be modding today is called Idle Restaurant Tycoon, download the apk file from here, note: If the game is outdated then make sure you download the latest version from apkcombo apk downloader – click here
We will be modding the money inside the game to make it never decrease no matter how much we spend.
OKAY! So at this point, I am sure you have already download the game apk and all the required tools that we need in order to mod the game. So let’s begin.
1) Move the APK file inside the IL2CPP Dumper folder
2) Now just launch/Open Dnspy, Hex Editor, and Apk Easy tool and minimize all of them.
3) You do not need to decompile the apk for this tutorial, just double click on the APK file since you have the WINRAR installed, it should open the file and you will be able to view the content inside of the APK file because all APK files are basically ZIP files.
4) Navigate to – assets > bin > data > managed > metadata > global-metadata.dat and drag that “global-metadata.dat” out and then go back completely from where you started and navigate to lib > armeabi-v7a > libil2cpp.so and drag out that “libil2cpp.so” file.
Note: If you have a folder named armv64 or any other apart from armeabi-v7a inside the LIB then just delete that folder we won’t need it, only keep armeabi-v7a we just need that.
5) Now Click on the “Il2CppDumper” Application and a window will open where you first have to choose the libil2cpp.so file then another window will open where you will choose the global-metadata.dat file and the application will then dump the files (Picture below shows the dummy Dll files you will get the dump CS.)
6) Navigate to the Dummy Dll Folder and you will have all the DLL files, what you want to do is select all the files and drag & drop them inside the DNSPY application that you have it open.
Once you have loaded the files it will look something like this inside DNSPY, do you see the arrow pointing “All of the above” you have to click on that drop-down menu and find something called “Method” and select it and make sure it says method instead of “All of the above” because 98% of the time in unity games you will ALWAYS be hacking methods.
7) So once that is done, I want you to load the libil2cpp.so file into the HEX editor… Just drag and drop the file inside the hex editor and it will load it then it should show something like this
8) So as I said earlier, what we wanted to hack inside the game was the MONEY, now in unity or any other engine, the developers will not always call the main currency of the game money, it could be anything they want but the most common ones that are used are, Money, Cash, Diamonds, Gold, Coins, Hard Currency, Soft Currency, etc with time as you learn you will understand this don’t worry…
We want to make the money in the game to never decrease, so for that, we will have to search for something related to it like decrease, spend, deduct, minus, subtract, etc. Now since I know what I have to hack in this game I will directly search for that, but if you are trying to hack another unity game you will have to find the correct method name and try and see if it is the correct one or not by modding the hex values of it, it is basically a trial and error thing, so try and see.
However, for this game, I will search for the term “Deduct”
Now as you can see upon searching deduct I got only two results, ignore the first one we need to hack the second one, it also seems inside an interesting function. The text that is written in green “Cash Model” is the function and “Try Deduct” is the method, you always have to make sure the function in which the method is, makes sense. For example, if the “Try deduct” was inside let’s say “MoneyUI” function that is is useless because that is just the user interface of showing the money or displaying it, hacking that is useless. A useful function can be like – Playermanager, wallet, enemydata, playerdata etc. With time you will learn all this.
9) Ok so since we have got our method that we want to hack, just double click on the method. And you should see something as shown in the pic below.
10) Next to “Try Deduct” we see that it is written ” public bool” booleans are true or false statements, so you can either return a true to it or a false, you cannot return anything else to it. For example, you will find a method in a game saying “IsPlayerVIP” you will return true so now you will have all VIP privileges inside the game.
But from what I understand about this game, is that the game checks whether the money was deducted from your account when you made any transaction, so if we return a true to it, then it will always think that yes the money was deducted while in reality, it wasn’t so this way your money will never decrease whenever you spend them.
11) Here what you have to do is copy the offset as shown in the pic below
12) Copy it and now open your HEX editor where you loaded the il2cpp.so file. And PRESS CTRL + G and a window will pop up, paste the hex code there that you copied in the previous step.
And Hit OK
If you get an error saying “The entered number contains invalid digits” then remove the “0x” at the beginning.
13) Once you hit okay it will take you to the address or value etc where it stores the method. Highlight the first 8 bits of the characters you see, since this is an 8-bit game.
14) Now to return a true in Hex value it is – 01 00 A0 E3 1E FF 2F E1 – or number 1 – Number 1 or true the same thing. I want you to replace that part you highlighted with the hex value I gave you above. To do that make sure it is highlighted and you have copied the hex gave above, now press CTRL + B
It should now be in RED with hex value you replace it with, This step should be done correctly otherwise you will get “Failed to load LIBIL2CPP” error every time you launch the game.
15) At this point, we are pretty much done, so just hit CTRL + S to save your changes and then go back and replace the libil2cpp.so file with the original one, just drag the modified one and replace it that its.
16) Now drag and drop the APK file inside the APK easy tool and hit “Sign Apk” and it will sign the apk , you should not have 2 apk files inside the same folder where one’s name will end with “Signed” you have to send that file to your Android device, install the APK and test the game, at this point your money should never decrease.
Congratulations!!! You just modded your very first Android game.
As I said this is a very basic beginner’s tutorial, but it should give you an idea of how modding works. I am leaving some useful hex codes below to help you with modding.
00 00 A0 E1 1E FF 2F E1 = NOP
00 00 A0 E3 1E FF 2F E1 = False or number 0
01 00 A0 E3 1E FF 2F E1 = True or number 1
02 00 A0 E3 1E FF 2F E1 = number 2
0A 00 A0 E3 1E FF 2F E1 = number 10
0F 00 A0 E3 1E FF 2F E1 = number 15
10 00 A0 E3 1E FF 2F E1 = number 16
11 00 A0 E3 1E FF 2F E1 = number 17
DC 0F 00 E3 1E FF 2F E1 = number 4060
DC 0F 0F E3 1E FF 2F E1 = number 65500
In most of the cases you will only be using the HEX Codes listed above, in certain cases you will need other values but as a beginner you will not need them right now. These HEX codes will only work for INT value, meaning Integer. You will come across float, long, double, Void, etc later on when you start modding.
Modding as i said it is trial and error, so you will have to try and mod something to see what effect it has in the game if none then try something else. You may sometime have plenty of results when you search for a method, but the main thing you have to look for is where does that method resides, inside what function, if you understand that, then you will save yourself a lot of time.