Help! New modder stuck and need help!

dragonregure

Platinian
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.
 
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
 
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
 
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
 
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
 
Back
Top Bottom