Dalam repositori ini kita akan menemukan panduan langkah demi langkah tentang cara Merekayasa Balik APK.
Reverse Engineering dapat membantu kita dalam beberapa aspek, seperti mengidentifikasi perangkat lunak atau kode berbahaya , menemukan kelemahan keamanan , menemukan fitur yang tidak diharapkan /melanggar aturan bisnis... Karena itu, mari masuk lebih dalam ke dunia Android.
Dimulai dari dasar-dasarnya, kita dapat membagi Paket Android (APK) kita menjadi beberapa bagian:
Smali adalah versi bytecode Dalvik yang dapat dibaca manusia, sederhananya, ia berfungsi sebagai perakitan/pembongkaran. Format Eksekusi Dalvik (.dex)
Dari segi kode, mari kita lihat perbedaan Java dan Smali:
public static void printHelloWorld() {
System.out.println("Hello World")
}
Dan kode kami yang sama di Smali:
.method public static printHelloWorld()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "Hello World"
invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
Kami telah mempelajari konsep dasar yang diperlukan dan sekarang mulai bekerja!
Langkah 1:
Pilih APK yang ingin Anda Balikkan.
Jika Anda tidak dapat menemukannya dengan mudah melalui app store itu sendiri, Anda dapat melakukannya langsung di situs seperti APKCombo atau APKMonk.
Sesampai di sini, perhatikan beberapa hal yang mungkin menarik:
- Qual é o URL da API? (geralmente emos algo como api.domain.com)
- Qual é método de autenticação utilizado? Eu preciso criar um login para acessar?
- Quais são as chamadas que eu posso encontrar e quais são os parâmetros eles esperam?
Setelah kita memiliki APK, saatnya mendekompilasinya, sehingga kita dapat menganalisis kodenya.
(Alat Analisis Dinamis seperti MOBSF memungkinkan Anda mengunduh kode secara langsung, baik dalam Java atau SMALI).
Sekarang kita akan menggunakan alat, yang pertama adalah APKTOOL, Anda akan melihat detail lebih lanjut di bawah, tetapi secara umum ini akan bertanggung jawab untuk mendekompilasi file, membuat folder, di tempat yang sama, dengan semua file yang didekompilasi . Dari sini, Anda akan dapat menganalisis semua kode yang diperlukan.
Perintah yang digunakan di sini adalah sebagai berikut:
- apktool d ~/Desktop/aplicativo_app.apk
Mengekstrak file “classes.dex” dari APK.
Gunakan alat dex2jar untuk mengonversi ke file kelas Java. Menghasilkan file jar.
- sh d2j-dex2jar.sh classes.dex
Gunakan JD-GUI untuk mengekstrak kode sumber dari file jar.
- Arraste o arquivo classes-dex2jar.jar pro JD-GUI
Kerangka Keamanan Seluler adalah alat yang mengotomatiskan analisis APK. Di dalamnya kita mendapatkan rincian lebih lanjut tentang bagian-bagian yang membentuk APK, yang kita lihat sebelumnya.
dex2jar
dedexer
apktool
apktool adalah alat Java opensource untuk merekayasa balik aplikasi Android. Itu dapat memecahkan kode file APK ke kode aslinya dalam XML yang dapat dibaca manusia. Juga membagi semua kelas dan metode yang terdapat dalam file tersebut ke dalam Smali. Dengan cara ini, Anda dapat mengubah fitur atau eksekusi program. Dengan menggunakan kode Smali, Anda dapat menambahkan fungsionalitas baru dalam aplikasi tersebut atau mengubah perilaku yang diharapkan.
Biasa digunakan untuk Penyematan SSL.
adb (Jembatan Debug Android)
penjaga andro
Kerangka Xpose
Perintah: //segera
Lewati SSL Android
Jumat
Sekarang kita sudah punya dasar bagaimana cara kerjanya, sekarang saatnya berlatih! Berikut daftar beberapa lab yang dapat Anda gunakan sebagai latihan:
Uji jenis serangan berikut:
Terima kasih sudah sampai di sini! Semoga harimu menyenangkan.