Cara Modding Game Android

Tutorial ini saya akan mencoba modding game dari GARIS, yaitu Renjers. meskipun yang akan saya patch di sini sudah di proteksi server side, tapi yang inti nya adalah bagaimana membuat modded apk itu sendiri...

Tools yg di perlukan antara lain:
0. JRE atau JDK 6
1. APK-Multi Tool (utk decompile, sign, recompile), situs resmi: http://apkmultitool.com/
2. IDA Pro (utk Disasembly, analisa fungsi dalam file lib (*.so), jika anda kesulitan dalam mendownload via 4shared lihat disini *pwd: farhan-permana.blogspot.com)
3. Hex Editor (merk apa aja, utk edit file lib tadi, kalo dah dapat yg mau di patch, saya sendiri memakai Ultra edit)
4. Kopi :p

DECOMPILE
1. Downloaf apk-multi tool dan extract.
2. Jalankan Setup.bat







Spoiler setup
Gambar Terposting

3. Pilih 3, tekan ENTER
4. Cek folder apk-multi tool, folder2 utk menyimpan project dll akan di buat otomatis. Tutup jendela ini.
5. Copy apk yang akan di mod di folder "place-apk-here-for-modding", sbg contoh, L1n3Renjers_1.0.4.apk
6. Jalankan Script.bat, pilih 24 (Set current project), tekan ENTER
Spoiler script
Gambar Terposting

Pilih nomor apk yang akan di decompile, contoh: 1
Gambar Terposting

7. Di bagian current app akan muncul nama project/apk yg aktif
Spoiler project
Gambar Terposting

8. Pilih (Decompile apk), utk mulai decompile, tunggu sampe proses selesai.
Spoiler decom
Gambar Terposting

9. Minimize jendela script
10. Copy file libgame.so, dari folder apk-multi-tool \projects\L1n3Renjers_1.0.4.apk\lib\armeabi\libgame.so ke mana aja. misal desktop\lib\


DISASEMBLY
1. Buka IDA pro
2. Buka ato drag file yang tadi di copy ke jendela ida
Spoiler ida open
Gambar Terposting

3. Klik OK, pilih YES kalo ada confirmasi change processor type
4. Tunggu beberapa menit, sampe lib selesai di load
5. Berikut nya adalah mencari (step ini yg paling membosankan, krn kita harus nebak kira2 fungsi apa dan akan membuat efek apa di dlm game)
6. Klik tab Exports, urut nama fungsi nya dengan meng-klik kolom name
7. Sebagai contoh, kita akan mencoba patch fungsi yg mengaktifkan roket/misil tanpa delay
Spoiler n0delai
Gambar Terposting


8. Dari nama fungsi nya kita bisa mengetahui, kalo ini adalah fungsi untuk mengecek apakah roket sdh siap.
9. Klik 2x nama fungsi nya, ida akan berganti view ke View-A (klik kanan utk berganti mode view graph ato text view)
10. Scroll sediit ke bawah sampe end of function
Spoiler end
Gambar Terposting


perhatikan yang di kotak merah, mulai dari:

.text:00297C28 LDR R1, =0x3F800000
baris ini mengisi register R1, dgn nilai 0x3F800000 ato float 1.0

trus memanggil fungsi utk compare float:

 77 int __aeabi_fcmpeq(float, float); // result (1, 0) denotes (=, <>) [2], use for C == and !=
referensi: http://users.sosdg.o...ude/aeabi.h#L77

jika hasil compare ini = 0, maka hasil fungsi ini juga akan bernilai 0 atau false, artinya, roket blum siap

.text:00297C34 CMP R3, #0
.text:00297C38 BEQ loc_297C44

keterangan:
CMP = COMPARE
BEQ = BRANCH IF EQUAL

.text:00297C44 loc_297C44 ; CODE XREF: BattleManager::isReadyToWeapon(void)+88 j
.text:00297C44 MOV R3, #0
isi register R3 = 0
.text:00297C48 loc_297C48 ; CODE XREF: BattleManager::isReadyToWeapon(void)+90 j
.text:00297C48 MOV R0, R3
isi R0 = R3, di dalam fungsi ARM, R0 adalah alamat register untuk meyimpan nilai kembalian dari fungsi

yang perlu kita modifikasi adalah, membuat fungsi ini selalu bernilai 1 atau true, jadi roket akan selalu ready.
bisa dengan mengedit alamat

.text:00297C48 MOV R0, R3
menjadi
.text:00297C48 MOV R0, #1 

atau

.text:00297C44 MOV R3, #0
menjadi
.text:00297C44 MOV R3, #1

yg paling gampang adalah alamat kedua, krn cmn mengganti nilai #0, menjadi #1

klik pada alamat 00297C44, alamat yg aktif akan di tandai kuning







Spoiler klik
Gambar Terposting


ganti view ke Hex View-A
Spoiler hex
Gambar Terposting


00297C44 00 30 A0 E3
code diatas adalah  asembly dari perintah MOV R3, #0

utk ke mode edit, tekan F2, ganti 00 jadi 01, tekan F2 sekali lg jika sudah mengedit







Spoiler edit
Gambar Terposting

kembali ke IDA View-A, utk melihat perubahan
Spoiler check
Gambar Terposting



LANJUT POST #2
Terlalu banyak gambar....

Credits:
G0ogle
AGH

Referensi:
ASM Introduction
IDA Tips

//hrd

CONT...

PATCHING
1. Buka HEX Editor
2. Buka ato drag libgame.so yg sdh di copy tadi ke jendela hex editor
Spoiler hex-edit

3. Copy address dr ida (00297C44)
4. Tekan CTRL+G di ultraedit, paste address (tambahkan 0x di depan address sblm klik OK)
Spoiler goto
Gambar Terposting

Cursor akan aktif di address yg akan di edit
Gambar Terposting


5. Edit 00 30 jadi 01 30
Spoiler editing
Gambar Terposting


6. Save, ato Tekan CTRL+S
7. Copy lib editan ini ke folder apk-multi-tool, timpa lib yg asli

Selanjut nya adalah Recompile, kembali ke jendela script. jika tidak sengaja menutup jendela ini, kembali ke bagian DECOMPILE step 6.

8. Pilih 12 (Compile non system apk) ato 15 ( Compile apk / Sign apk / Install apk), jika ADB sdh terinstall dan hh sdh terhubung ke pc/laptop

Catatan:
jika memilih 12, pilih 2 (Create unsigned apk) setelah proses recompile berhasil

Pastikan hh terhubung sebelum memilih 15, ada baik nya uninstal game dari hh, krn biasa nya, game yg memakai lib, jika di install timpa langsung, lib nya nda di update/lib asli tdk tertimpa.

Hasil modded apk bisa di lihat di:

\place-apk-here-for-modding\unsigned***.apk
Gambar Terposting


Catatan:
Tutor ini apa ada nya, artinya silahkan kembangkan sendiri. google is your friend.

Yg palng penting di sini adalah Trial and Error. jd jgn bosan mencari dan mencoba, kalo fungsi yg kita mod gak work, ato gak ada efek ato sdh di protek server side, kan masih ada ratusan fungsi yang bisa kita edit


Enjoy, happy modding ;)


G+

Previous
Next Post »

18 komentar



June 28, 2014 at 11:31:00 PM GMT+7 ×

ternyata rumit ya hehe tapi makasih udah share

BALAS
avatar
June 28, 2014 at 11:35:00 PM GMT+7 ×

sudah pasti ribet nih.. mata kuliah ane dlu. Pemrograman Java :D

BALAS
avatar
June 28, 2014 at 11:51:00 PM GMT+7 ×

iya ribet, makanya ane recommended minum kopi gan :-)

BALAS
avatar
Anonymous
admin
June 29, 2014 at 8:01:00 AM GMT+7 ×

ternyata bisa dimodding juga ya

BALAS
avatar
Anonymous
admin
June 29, 2014 at 8:19:00 AM GMT+7 ×

wah, bisa nanya-nanya tentang android gak gan lewat email?

BALAS
avatar
DaFa Adytia
admin
June 29, 2014 at 9:24:00 AM GMT+7 ×

makasih gan tutorialnya 8-)
sangat bermanfaat (b)

BALAS
avatar
Anonymous
admin
June 29, 2014 at 11:59:00 AM GMT+7 ×

Caranya ribet gan ,, :( ane nubi jadi ini terlalu sulit .. ada yang lebih simple ga ?? ditunggu ya yang lebih simpel nya :)

BALAS
avatar
June 29, 2014 at 12:02:00 PM GMT+7 ×

semua .apk bisa di mod gan hehe

BALAS
avatar
zanurri arif
admin
June 30, 2014 at 11:06:00 AM GMT+7 ×

OO...gtu to caranya,saya coba ke Android saya Y...

BALAS
avatar
Reza Rizal
admin
June 30, 2014 at 11:58:00 AM GMT+7 ×

Widih Gan :D , Bisa Dicoba Nih :D

BALAS
avatar
June 30, 2014 at 1:21:00 PM GMT+7 ×

ribet gan :/ tapi boleh dicoba :D

BALAS
avatar
Anonymous
admin
December 22, 2014 at 9:04:00 PM GMT+7 ×

Mantaaap gan cocok buat ane yg sering otak-atik android XD

BALAS
avatar
June 19, 2015 at 1:22:00 PM GMT+7 ×

mumet juga pake bahasa assembly

BALAS
avatar
December 10, 2017 at 8:48:00 AM GMT+7 ×

gan, saya suka gagal saat decompile apk-nya kenapa yah?

BALAS
avatar

Blogger Bijak Selalu Ninggalin Jejak ! Show EmoticonHide Emoticon

Thanks banget yang udah mau sempetin comment, karena SERIUS itu sangat berarti buat gue ^-^