۴. هوک کردن متد سازنده (Constructor)
گاهی نیاز است که دقیقا در لحظه ساخته شدن یک شیء (Object)، مقادیر اولیه آن را تغییر دهیم. در فریدا متد سازنده با نام $init شناخته میشود.
سناریو: تغییر موجودی اولیه هنگام ساخت اکانت
کد جاوا:
java
package com.example.game
public class UserPlayer {
private int coins
public UserPlayer(String name, int initialCoins) {
this.coins = initialCoins
}
}کد فریدا:
javascript
Java.perform(function () {
var UserPlayer = Java.use("com.example.game.UserPlayer")
/* هوک کردن Constructor */
UserPlayer.$init.overload('java.lang.String', 'int').implementation = function (name, coins) {
console.log("[+] Creating User: " + name)
/* دادن 9999 سکه به جای مقدار اولیه سرور */
var hackedCoins = 9999
/* فراخوانی سازنده اصلی */
this.$init(name, hackedCoins)
}
})