Skip to content

۱. هوک کردن ساده (تغییر خروجی متد) ​

رایج‌ترین سناریو، دور زدن چک‌های امنیتی ساده است. مثلا متدی که بررسی می‌کند آیا کاربر ادمین است یا خیر.

سناریو: دور زدن بررسی ادمین ​

کد جاوا (اپلیکیشن هدف):

java
package com.example.app

public class Utils {
    /* این متد بررسی می‌کند آیا کاربر دسترسی ادمین دارد یا خیر */    
    public boolean isAdmin() {
        return false // به صورت پیش‌فرض دسترسی ندارد
    }
}

کد فریدا (Exploit):

javascript
Java.perform(function () {
    /* 1. گرفتن ارجاع به کلاس */    
    var Utils = Java.use("com.example.app.Utils")

    /* 2. بازنویسی پیاده‌سازی متد isAdmin */    
    Utils.isAdmin.implementation = function () {
        console.log("[+] isAdmin hook triggered!")
        
        /* 3. تغییر مقدار بازگشتی به true */        
        return true 
    }
})

نکته مهم

زمانی که یک متد را بازنویسی می‌کنید، کد اصلی دیگر اجرا نمی‌شود مگر اینکه خودتان صریحا آن را فراخوانی کنید.