Tutorial! Written tutorial by Intyre:
Open decrypted minecraftpe in IDA-PRO
File -> Open -> minecraftpe
Make sure the processor type is ARM, click Set and then Ok. There will be a couple of more screens just press Yes. IDA will then load the file. Wait until the light in the top bar is green.
You can search for interesting stuff with ALT+T. A screen will popup where you insert what you want to search for. Try to search for interesting words.
I searched for damage.fall and got the following results. Looks interesting what's next!
Go look at the code by double clicking a row. I did the first and this is what I got.
cmp R4,#1 // R4 = damage value
BLT loc_9F8E4 // Jumps if R4 is larger then #1 to loc_9F8E4
You see two lines the red line goes to the routine where the damage is handled. The Green line goes to loc_9F8E4 when there is no need to change the damage.
We don't want to go to the routine where the damage is handled so we need to change the BLT to B
You can test it with IDA by selecting the BLT and switch the view to hex-view. you see all the hex code surrounded by that offset. The BLT you selected is highlighted.
We selected the BLT loc_9F8E4 line and the hex looks like: 57 00 00 BA
BA is the BLT that's what we need to change. We start the arm asm convertor and find out what we need to change it to. The 0x164 is the difference between 0x9F8E4 and 0x9F780
Left is the original 570000BA. Right is to what we need to change it to 570000EA.
No open your favorite hex editor and go to the offset you want to change. Keep in mind you have to subtract 0x1000 from the offset you found in IDA. We found offset 0x9F780 - 0x1000 = 0x9E780
Replace the BA with EA and save the file. If you want to check you can open the file in IDA and go to the offset we found 0x9F780. All you have to do now is copy back the file to your iDevice. Then sign and give the right permission. Make sure the game is not running and also close it from the multitask bar.
Another great mod would be, if possible, to make a block or a button on screen which would change entities.dat/level.dat time to day. Because it's really annoying that we have to wait whole night doing nothing...