# (Android) How To Mod APK

Sumber: https://nyit-nyit.net/threads/android-how-to-mod-apk.143360/
Forum: N3 Source Codes dan Tutorials
Dibuat: 2014-04-13 oleh hrd
Balasan: 110, dilihat: 144310

## Post pertama

Untuk tutorial ini kita akan mencoba modding game dari GARIS, yaitu Renjers. meskipun yang aka kita 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. (http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html) atau JDK 6
1. [APK-Multi Tool](http://www.mediafire.com/download/xg7a48za3f7b9h4/APK-Multi-Toolv1.0.11.zip) (utk decompile, sign, recompile), situs resmi: **[http://apkmultitool.com/](http://apkmultitool.com/)**
2. IDA Pro (utk Disasembly, analisa fungsi dalam file lib (*.so), link donlot cari sendiri di g0ogle ya, terlalu besar size nya utk sy upload)
3. Hex Editor (merk apa aja, utk edit file lib tadi, kalo dah dapat yg mau di patch, link donlot juga cari sendiri ya... :p)

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

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

Pilih nomor apk yang akan di decompile, contoh: **1**

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

8. Pilih **9 **(Decompile apk), utk mulai decompile, tunggu sampe proses selesai.

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

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

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

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 (=, <>) , use for C == and !=
```

referensi: [http://users.sosdg.o...ude/aeabi.h#L77](http://users.sosdg.org/~qiyong/mxr/source/sys/arch/arm/include/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

ganti view ke Hex View-A

```
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

kembali ke IDA View-A, utk melihat perubahan

**LANJUT POST #2**
Terlalu banyak gambar....

Credits:
G0ogle
AGH

Referensi:
[ASM Introduction](http://magiclantern.wikia.com/wiki/ASM_introduction)
[IDA Tips](http://magiclantern.wikia.com/wiki/IDA_tips)

//hrd

CONT...

**PATCHING**
1. Buka HEX Editor (saya pake ultra Edit)
2. Buka ato drag libgame.so yg sdh di copy tadi ke jendela hex editor

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

Cursor akan aktif di address yg akan di edit

5. Edit 00 30 jadi 01 30

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

Catatan Lagi
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

## Balasan

### VitoAuditya, 2014-04-13

akhirnya keluar jg tutornya, googling kadang gajelas keluarnya. 

btw, hasilnya di share dong wahahah.

### netrevolver, 2014-04-13

ane puyenk yang versi 1.0.5...

### skypioneer, 2014-04-13

ehmm inih yang kemaren ane lagi nyari, ternyata ga segampang kayak di google.. buat game2 begini.. makasih ya tutornya gan @@hrd , ane mau coba nge mod si l1n3 r3ng3rsnyaa

... di lanjutin gan, nge save nya kayak biasa aja atau gimana?

### hantubugil, 2014-04-13

Mari semangat.....
Buat modif2.....
Hehehehehe.....

### kuke, 2014-04-14

Makasih om hrd atas tutsnya..ane cobaain dolo

### VitoAuditya, 2014-04-14

boleh dishare nih kalo kelar, msh jauh dari pc gw huahahah

### skypioneer, 2014-04-14

nih ane bantu link id4pro yg udah full.. [http://www.mediafire.com/download/0287abxdde80chw/idapro55.rar](http://www.mediafire.com/download/0287abxdde80chw/idapro55.rar) ..
bagi yg udah bisa edit, ally nya keluar ga abis2 share donk.. banyak perbedaan antara libgame.so yg versi linerangers104 sama libgame.so linerangers105

### falahs01, 2014-04-15

wew udah di keluarin tutorial nya. nanti nyoba" modding ah :)

### netrevolver, 2014-04-16

105 nyerah, pasrahin ke master2 aja dah.

### netrevolver, 2014-04-17

dan sekaraaaang... dipaksa upgred ke 106 hfftt...

### hrd, 2014-04-18

address v1.0.6

```
0027F074 39 4F 00 EB 48 30 1B E5 03 00 A0 E1 4C 10 A0 E3
```

ganti **4 byte pertama** menjadi:

```
0027F074 00 00 A0 E1 
```

Efek: tes sendiri, paling tdk ini gak di jagain server (belum)

### zglar, 2014-04-18

om hrd , kalo address nembak no delay udah k detect?

### netrevolver, 2014-04-18

yg 106 invalid CEN header bad signature

*sori bisa deng.. file corrupted

### hrd, 2014-04-18

yg roket dah kedetek server, semua yg berbau nodelay pokoknya,

wew. masa error?

coba timpa pake lib ini

http://www.mediafire.com/?0c9vvshvn1vx91y

trus compile

### VitoAuditya, 2014-04-18 (+1)

hmmm, kurang ngerti ngecompilenya, selalu error pas pake v.1.0.5, jadi mager nyoba yg 1.0.6.
buat temen-temen yang berhasil bikin efek apapun buat line renjer, bisa di share om apk nya, sharing :grin:

### zglar, 2014-04-18

brarti dari sana tinggal compile doang trus jadi apknya om?
tadi abis coba d edit , trus coba install unsigned apknya malah application not installed om .. gmana yah? wkwkw pusing

### infarev, 2014-04-18

Makin susah nih, udah 106 pula. Ada yg udah berhasil? :p

### hrd, 2014-04-18

ia, tinggal compile trus install, kalo ada pesan application not installed. coba uninstall dulu yg lama

ato kalo hh dah rooted, tinggal copy lib ke \data\data\c0m.lin3corp.LGR6S\

### falahs01, 2014-04-18

harus di sign dulu apk nya gan CMIIW

### infarev, 2014-04-18

compile nya gmn om? aku newbie nih :(

### zglar, 2014-04-18

udah sukses d compiled trus install sama sign in nih om , tapi pas masuk renjeeersnya malah ada tulisan authentication failed please try again .. knapa ya itu

### infarev, 2014-04-18

cara compile nya gmn masbro, langkah2 nya ajarin saya dnk :)

### zglar, 2014-04-18

donload apkmultitool terus ikutin langkah yang ada , jelas kok dsana smuanya

### infarev, 2014-04-18

pas ane coba compile malah error, knp ya? Tulisannya "an error accured, please check the log option 23"

udah ane compile malah error pas pencet 9 malah "an error occured" gmn ya masbro

### krenz12, 2014-04-18

wah cakep banget tutornya. mau coba mod cookie run siapa tau yang ke suspend noticenya bisa di abaikan
thanks om hrd

### netrevolver, 2014-04-19

paling aman lib ini om nodelay jgn diutak atik

bisak tq

### hrd, 2014-04-19

tool utk konversi ARM ke HEX

http://armconverter.tk/

### zglar, 2014-04-19

Om hrd , itu buat rubah address d apk lagi yah? Buat smentara ini cuman bisa yang mineral om?

### netrevolver, 2014-04-20

sip mayan

### terdiam, 2014-04-20

Thx @hrd. Dengan cara timpa pakai rootexplorer file lib nya work. Buat hh yg udah di root pakai cara timpa aja.

(80 balasan lain ada di halaman thread.)
