Jump to content

13 posts in this topic

Recommended Posts

Updated (edited)

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 Hex Workshop 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:

b8 01 00 00 00 (mov eax, 1)

False is:

b8 00 00 00 00 (mov eax, 0)

And return is:

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

b8 7f 96 98 00 (mov eax, 9999999)
c3 (ret)

You can use online x86 Assembly to get raw hex
https://defuse.ca/online-x86-assembler.htm#disassembly

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

H5oHmVM.png[/IMG]

Credits:
AndnixSH#

Tutorial updated (May 2018)

Updated by AndnixSH
  • Like 1
  • Thanks 1
Posted (edited)

So what is MOV R0, R7 in x86 ??

 

there is no limitation of value in x86 so you don't have to think about MOV R0, R7 thing

 

99,999,999 value is

mov eax, 0x5f5e0ff = b8 ff e0 f5 05

max value is 0xffffffff = 4,294,967,295 , but it if max value is 2,147,384,687 for some games, the value will go negative or the game will crash

mov eax, 0xffffffff = b8 ff ff ff ff

i'm unsure if it works

Updated by evildog1
Posted

there is no limitation of value in x86 so you don't have to think about MOV R0, R7 thing

 

99,999,999 value is

 

mov eax, 0x5f5e0ff = b8 ff e0 f5 05
max value is 0xffffffff = 4,294,967,295 , but it if max value is 2,147,384,687 for some games, the value will go negative or the game will crash

mov eax, 0xffffffff = b8 ff ff ff ff
i'm unsure if it works
aight dude thanks ill let you know if this works ;))

@@evildog1

Do we need a x86 to hex converter?

I found one dude

https://defuse.ca/online-x86-assembler.htm#disassembly

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines