免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動!
內容參考于:圖靈Python學院
工具下載:
鏈接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89
提取碼:zy89
復制這段內容后打開百度網盤手機App,操作更方便哦
上一個內容:12.安卓逆向2-frida hook技術-HookJava重載方法
如下圖Money多個構造方法,多個構造方法也是通過不同的入參來區分的
hook代碼
Java.perform(function () {// 查找Money類var Money = Java.use('com.luoge.com.Money');// Hook 無參構造方法Money.$init.overload().implementation = function () {console.log('調用了 Money 類的無參構造方法');// 調用原始構造方法this.$init();};// Hook 帶參數的構造方法Money.$init.overload('java.lang.String', 'int').implementation = function (str, i) {console.log('調用了 Money 類的帶參數構造方法');console.log('參數 str: ', str);console.log('參數 i: ', i);// 調用原始構造方法return this.$init(str, i);};
});
改變入參的值,改別人初始化的值就這樣改
Java.perform(function () {// 查找Money類var Money = Java.use('com.luoge.com.Money');// Hook 帶參數的構造方法Money.$init.overload('java.lang.String', 'int').implementation = function (str, i) {str = 'Hooked String';i = 999;// 調用原始構造方法return this.$init(str, i);};
});