Frida Hook

Tools need to be prepared:

Tool Install on Purpose
jadx-gui PC/Laptop Reverse Engineering file APK
frida PC/Laptop Untuk menginjeksi script untuk melakukan Hook
frida-server Android Membuka koneksi Android agar Frida PC dapat terkoneksi


Lab Setup (AndroGoat App)

Download:




1. APK Code Analysis with JADX

Jalankan jadx-gui dan buka file APK melalui jadx untuk melakukan decompile.

Find a Function

jadx-gui androgoat

Kueri-kueri yang dapat digunakan untuk menemukan fungsi Root Detection.

  • bin/su
  • "su"
  • /system/
  • /data/data
  • rootdetect
  • isroot

jadx search


Code Analysis

Pada tahap ini, kita perlu melakukan pembedahan terkait fungsi-fungsi apa saja yang digunakan.

Ditemukan fungsi isRooted()

Fungsi isRoot

Ditemukan lagi fungsi isRooted1()

image

Di sini kita telah mengetahui bahwa terdapat 2 fungsi yang digunakan pada modul pendeteksi Root-nya.

Karena return yang diharapkan itu false, maka perlu dicatat juga akan hal ini.


Hook Logic

Berikut ini adalah logika yang akan kita digunakan untuk Hooking.

isRooted()  => True  => Root Detected
isRooted1() => True  => Root Detected
isRooted()  => False => Not Rooted
isRooted1() => False => Not Rooted


Package Location

Perlu diingat juga bahwa Code yang kita analisa tadi itu terdapat di dalam package owasp.sat.agoat.RootDetectionActivity, hal ini yang akan digunakan pada Script Hook nantinya.

owasp sat agoat RootDetectionActivity




2. Hooking

Hooking: Memanipulasi aktivitas (secara Real-Time) pada sebuah aplikasi Android yang sedang berjalan.

Before Hook

Before Hook

Sebelum dilanjutkan, kita perlu Setup Frida terlebih dahulu.


Run the App and Get App Identifier

frida-ps -Uai

Get App Identifier


Prepare Script to Hook

Script for example androgoat-root-bypass.js:

Java.perform(
  function () {
    let CallJavaPackage = Java.use("owasp.sat.agoat.RootDetectionActivity");
    CallJavaPackage["isRooted"].implementation = function() { return false; };
    CallJavaPackage["isRooted1"].implementation = function() { return false; };
  }
);


Hook the Activity

frida -l <hook-script> -U -f <app-identifier>

frida hook

When the frida script running

not rooted