Post

[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 Challenge 0x2 Aplikasi Challenge 0x2

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.

Reverse Engineering APK Reverse Engineering APK

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 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 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 Mendapatkan Flag Dengan Memanggil Static Method

Saat script tersebut dijalankan, flag akan muncul di aplikasi.

Itulah cara memanggil static method di Frida, semoga bermanfaat.

This post is licensed under CC BY 4.0 by the author.