Jika anda membongkar sebuah apk dengan menggunakan apktools atau droidindo tools yang pernah tips droid ulas pada artikel "Decompile compile edit APK android". Anda pasti akan menemukan file smali. Pada artikel ini tips droid hendak membuatkan kepada anda perihal smali dan baksmali.
Sebelum membahas lebih jauh ada baiknya jikalau anda mengetahui terlebih dahulu apakah dan bagaimana menerima file smali.
Arti smali / baksmali
Smali / baksmali yakni assembler / disassembler untuk format dex digunakan oleh Dalvik , Android Java VM implementasi. Sintaks tersebut didasarkan pada Jasmin / sintaks dedexer , dan mendukung fungsionalitas penuh dari format dex (penjelasan , gosip debug , gosip jalur , dll)
Istilah nama "smali" dan "baksmali" berasal dari bahasa Islandia "perakit" dan "disassembler". Anda pasti bertanya , mengapa Islandia? Karena istilah Dalvik berasal dari nama sebuah desa nelayan di Islandia (sumber).
Bagaimana menerima file smali
Anda dapat menggunakan beberapa tools untuk decompile sebuah apk dan menerima file smali tersebut , beberapa tools diantaranya:
1.ApkTool
4.Dan masih banyak lagi tools yang dapat anda cari di internet.
Setelah anda decompile apk , biasa akan didapat file dengan ekstensi smali. Dapat juga anda decompile file .dex untuk menerima file smali dengan menggunakan tools di atas. Sebagai contohnya ketika anda menggunakan apktool.
Code:
java -jar baksmali-0.93.jar -o <direktori output> <.dex file , nama khas classes.dex>
Contoh: java -jar baksmali-0.93.jar -o out/rakun/dexout/ rakun-classes.dex
java -Xmx512M -jar smali-0.92.jar <direktori output hasil langkah di atas> -o <nama gres untuk file output .dex>
Contoh: java -Xmx512M -jar smali-0.92.jar out/rakun/dexout/ -o new-rakun.dex
Bagaimana cara mengedit file smali tersebut
Anda dapat menggunakan banyak sekali cara diantaranya menggunakan aplikasi notepad++ (anda dapat mencari dan unduh dari internet atau dapat juga dengan droidindo tools , alasannya yakni droidindo tools dilengkapi notepad++).
Dalam melaksanakan pengeditan mungkin anda akan dihadapkan pada sintaks java , alasannya yakni menyerupai yang telah dijelaskan tips droid di atas dimana smali merupakan bab dex yang digunakan dalvik.
Beberapa kode dalvik
Berikut yakni beberapa kode dalvik <untuk pengembangan lanjut , anda dapat menggunakan kebijaksanaan anda dalam melaksanakan pengeditan file tersebut>.
Catatan:
1.Perhatikan bahwa nilai ganda dan panjang menempati dua register (misalnya nilai yang ditempati oleh vy terletak di vy dan vy +1 register)
2.Nilai offset mampu aktual atau negatif dan itu dihitung dari offset byte mulai dari instruksi. Offset selalu diperhatikan dalam kata-kata (2 byte per 1 kenaikan nilai offset / penurunan). Offset ke negatif disimpan dalam format melengkapi dua hal itu. Posisi ketika ini yakni offset byte mulai dari instruksi.
3.Bandingkan operasi nilai return aktual jikalau operand pertama lebih besar dari operand kedua , 0 jikalau mereka nilai yang sama dan negatif jikalau operand pertama lebih kecil dari operand kedua.
4.Beberapa tidak dapat terlihat pada sintaks , hali ini diinterpolasi dari daftar bytecode Dalvik.
5.Parameter encoding pada daftar terkadang agak aneh. Mulai jikalau nomor parameter > 4 dan parameter nomor 4% == 1 , parameter (urutan 9 , dll) urutan 5 dikodekan pada bit 4 terendah dari byte segera mengikuti instruksi. Anehnya , pengkodean ini tidak digunakan dalam kasus 1 parameter , dalam hal ini kata 16 bit seluruh ditambahkan setelah indeks metode yang hanya 4 bit digunakan untuk mengkodekan parameter tunggal sedangkan bit 4 terendah dari byte mengikuti kode byte tidak digunakan.
6.Instruksi yang mempunyai angka no "6" pada list di atas , tidak dapat digunakan pada setiap file dan hanya terjadi pada file ODEX.
7.Jika ada kesalahan dalam menulis sintaks pada artikel ini mohon tinggalkan komentar. Terima kasih.