Tutorial [IDA tutorial] How to mod x86 lib .so file (Updated)

AndnixSH

PMT Elite Modder
Original poster
Staff member
Modding-Team
Jun 27, 2017
4,757
301,090
1,213
Modding World
Hello dear community,

Today, i will teach you how to mod x86 libs. x86 is not that hard to understand because the instruction are almost the same as ARM. In this tutorial, i mod the game called The Sandbox 2.

You don't really need to mod x86 at all since I never heard any problem with ARM translating to x86, and it's too hard to change instruction without code caving. Just wanna make tutorial lol

Now let's start modding.

In this tutorial, I'll show you how to mod The Sandbox Evolution very easy in x86.

First of all, you need IDA PRO and Any HEX editor installed on your computer. If you already have them installed, go to next step

Open the APK file with WinRar and extract the lib folder (In case you want to mod both x86 and ARM)
Open the x86 .so file in IDA. You will see the dialog box similar to the following:

ktDNoNu.png


In x86, you don't need to change anything. MetaPC is fine. Click OK to disassemble the lib file, and let it fully load. After that, press CTRL + F, search "isElementUnlocked" and double click on the function to open it

95o7chQ.png


Remember the offset (9869E0) of first instruction. we need to use it later.

Note: The offset will change each update.

Mf1y3sf.png


Open Hex Workshop or other hex editing program, and search the offset. I'm using Hex Workshop

wC2186M.png


89a0Dqm.png


Here is the offset of isElementUnlocked

U9UTx2C.png


The function isElementUnlocked is a boolean function, which means it can return true or false. If you want unlock everything, replace it with b8 01 00 00 00 c3, which will return true.

True is:
Code:
b8 01 00 00 00 (mov eax, 1)
False is:
Code:
b8 00 00 00 00 (mov eax, 0)
And return is:
Code:
c3 (retn)
y91Vjh6.png


When you open the modded .so file in IDA, your modded instruction will look like:

iL4oLV5.png


Isn't that easy?

You can also do the same on hasBoughtPromoPack to unlock premium

If you want to hack mana like 9999999, search getManaBalance and giveMana, and replace it with any values you want
Code:
b8 7f 96 98 00 (mov eax, 9999999)
c3 (ret)
You can use online x86 Assembly to get raw hex
Online x86 and x64 Intel Instruction Assembler

Open the APK with WinRAR and replace the modded .so file. Re-sign the APK, install it and run the game.

H5oHmVM.png


Credits:
AndnixSH#

Tutorial updated (May 2018)
 
Last edited:

DaRealPanDa

Co-Administrator
Staff member
Supporting-Team
Global Moderator
Social Media
Mar 12, 2018
6,755
15,595
2,120
27
Skyrim
Hey, @AndnixSH , if you know how to mod .So files, could you please have a look at my mod request ? Please check it from my profile. That (bloody) offline game has .So files.
Thanks
AndnixSH deactivated Marks so it brings nothing.
And this is not the Request Section buddy.
Wait until someone try it, thanks you :face16:
 

jkof

Platinian
Mar 28, 2020
36
5
8
23
France
Idk. i'm no longer interested in x86, so i may have forgot it
but according to your intuition, were these instructions that used eax and that you therefore modified? or no possible link? (knowing that we do not see all the instructions in the tutorial image)
 

Sami1980

Solid & Active Platinian
May 15, 2021
64
10
8
43
Europe
Thanks so much for the tutorial. Could you tell me how I can unlink functions in IDA pro? When i modded to give myself infinite health the enemy got it too. It's a non-unity game btw.