免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵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);};
});