Help! New modder stuck and need help!

dragonregure

Platinian
Original poster
Jan 26, 2018
5
6
3
27
Hello! I'm need your help guys, im a total newb at modding world so please understand.
After read this thread: BASICS ABOUT ANDROID APK MODDING IN GENERAL | LEARN MODDING TODAY FOR FREE!
I decided to start modding by try to mod a simple offline game, Zenonia 4.

After decompiling, looking for dll files, but no dll files. So i looking for .so files, found .so files.
So i followed this tutorial: [Videotutorial] Very nice Beginners Guide for IDA Modding on Android Games

It's all good at this point, until i tried to change a function, the function name is 'CMvItemInventory::SetGoldMoney(int,bool)'.
From the video, i got the concept, to get infinite gold, i have to set STR R3 to R7.
Problem start here, there's no STR R3, only STR R0, and more than 1 STR at the function, so which one i have to change?

Didn't get answer at the vid, i look to another tutorial: IDA PRO BASIC (INSTRUCTION OF IDA )
At this tutorial, i understand i just have to change whatever R, to R7.
So i click the R0, move to hex view, press f2 to change the value, change D0 50 to D7 50, but the R0 didn't change to R7?!

What did i do wrong?
Please guys, newbie stuck here.
 

G-Bo ッ

Administrator
Staff member
Administrator
Mar 22, 2017
8,628
336,447
2,350
Behind you.
platinmods.com
try to simply overwrite the whole method by changing the hex code from the beginning of the method to this:

7F 04 B0 E3 1E FF 2F E1


this is same in ARM as:

MOVS R0, #0x7F000000
BX LR


BX LR is ending the method, that means its completely overwritten and dont continue the method after it. This hex code is returning a very high value, in decimal its 2130706432
 

dragonregure

Platinian
Original poster
Jan 26, 2018
5
6
3
27
try to simply overwrite the whole method by changing the hex code from the beginning of the method to this:

7F 04 B0 E3 1E FF 2F E1


this is same in ARM as:

MOVS R0, #0x7F000000
BX LR


BX LR is ending the method, that means its completely overwritten and dont continue the method after it. This hex code is returning a very high value, in decimal its 2130706432
I found the problem why the R0 didn't changed, i just realize that i have to press F2 again to save changes haha.

Still i want to try your solutions, in case i got another problem like this in the future. But i don't understand some part, "overwrite the whole method", do you mean the STR R0, or the entire "CMvItemInventory::SetGoldMoney(int,bool)"?

I tried change only the STR R0, and it meesed up the branches a lot. So i thought i have to change all of it from the beginning, but i don't know how to overwrite the entire value with only "7F 04 B0 E3 1E FF 2F E1". And i can't delete hex code, so i'm stuck with your solutions.

One last thing, how to save it to .so file again? When i tried to save or exit, it save to IDA PRO Database file.

Sorry asking to much, please be patient on me :D
 

AndnixSH

PMT Elite Modder
Staff member
Modding-Team
Jun 27, 2017
4,680
296,940
1,213
Modding World
I honesty don't know how to save .so with IDA Pro. I usally don't use IDA to edit but using hex editor instead while looking for original code in IDA Pro. If i use IDA Pro to edit and apply then i don't know the original code because i can't remember it long
 

Macs

Rookie
Sep 22, 2018
1
0
3
27
indonesia
try to simply overwrite the whole method by changing the hex code from the beginning of the method to this:

7F 04 B0 E3 1E FF 2F E1


this is same in ARM as:

MOVS R0, #0x7F000000
BX LR


BX LR is ending the method, that means its completely overwritten and dont continue the method after it. This hex code is returning a very high value, in decimal its 2130706432
This is what i needed for modding . Thanks g-bo