[Frida Labs] 02 - Calling a Static Method
Dalam kesempatan ini, kita akan mempelajari cara memanggil static method menggunakan Frida.
Sebagai studi kasus, kita akan menerapkannya pada aplikasi Challenge 0x2.apk, yang bisa diunduh dari sini.
0x1 - Prerequisites
- Dasar reverse engineering menggunakan JADX.
- Kemampuan untuk memahami kode Java.
- Kemampuan untuk menulis kode Javascript.
- Familiar dengan ADB.
- Perangkat Android yang sudah di-root.
0x2 - Challenge 0x2
Mari kita jalankan aplikasinya.
Aplikasi ini cukup sederhana, hanya terdiri dari sebuah TextView
, tanpa adanya tombol atau elemen tambahan. Teks yang tampil di TextView
adalah ‘HOOK ME!’, ini sesuai dengan apa yang akan kita lakukan.
Mari kita gunakan JADX
untuk melakukan reverse engineering aplikasi.
Seperti yang kita lihat, ini adalah aplikasi sederhana. Satu-satunya hal yang dapat dilakukan oleh aplikasi adalah menampilkan TextView
. Dan bisa kita lihat, metode get_flag()
berfungsi untuk mendekripsi flag dan menampilkannya di TextView
. Namun, metode ini tidak pernah dipanggil.
Metode get_flag()
memiliki kondisi a == 4919
, di mana a
adalah argumen yang ada pada metode get_flag()
.
Jadi untuk mendapatkan flag menggunakan Frida, kita cukup memanggil metode get_flag()
dengan memberikan argumen berupa integer 4919
.
Mari kita mulai dengan mencari identifier dari package aplikasi.
1
➜ frida-ps -Uai
Mencari Nama Package Aplikasi Melalui Frida
Identifier dari aplikasi yang kita tuju adalah com.ad2001.frida0x2
. Kita juga bisa menemukannya di JADX
.
Mencari Nama Package Aplikasi Melalui Reverse Engineering
Mari kita mulai menyiapkan template script Frida untuk memanggil static method.
1
2
3
4
5
6
Java.perform(function (){
var <class_reference> = Java.use("<package_name>.<class>");
<class_reference>.<static_method>();
})
Pertama, kita harus menentukan class reference-nya, yaitu MainActivity
.
1
2
3
4
5
Java.perform(function (){
var a = Java.use("com.ad2001.frida0x2.MainActivity");
})
Selanjutnya, kita panggil metode get_flag()
dengan argumen 4919
untuk menampilkan flag.
1
2
3
4
5
6
Java.perform(function (){
var a = Java.use("com.ad2001.frida0x2.MainActivity");
a.get_flag(4919); //method name
})
Mari kita jalankan script tersebut.
1
➜ frida -U -f com.ad2001.frida0x2
Mendapatkan Flag Dengan Memanggil Static Method
Saat script tersebut dijalankan, flag akan muncul di aplikasi.
Itulah cara memanggil static method di Frida, semoga bermanfaat.