网站后台多个管理员,一键网站制作,低价网站建设多少钱,房子信息查询网站入口免责声明#xff1a;内容仅供学习参考#xff0c;请合法利用知识#xff0c;禁止进行违法犯罪活动#xff01;
内容参考于#xff1a;图灵Python学院
工具下载#xff1a; 链接#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码#xff1…免责声明内容仅供学习参考请合法利用知识禁止进行违法犯罪活动
内容参考于图灵Python学院
工具下载 链接https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码zy89 复制这段内容后打开百度网盘手机App操作更方便哦 上一个内容13.安卓逆向2-frida hook技术-HookJava构造方法
调用静态方法无参 注入之后调用指定方法 Java.perform(function () {var Utils Java.use(com.luoge.com.Utils);var ret Utils.getOver();console.log(ret);
})
function getJSOver() {var Utils Java.use(com.luoge.com.Utils);var ret Utils.getOver();console.log(ret);
}调用静态方法传参 Java.perform(function () {var Utils Java.use(com.luoge.com.Utils);var ret Utils.getOver(9998);console.log(ret);
})
function getJSOver() {var Utils Java.use(com.luoge.com.Utils);var ret Utils.getOver(9999);console.log(ret);
}非静态方法对象方法调用如下图可以看到它把内存中所有 com.luoge.com.Money 的对象都找到了并且执行了getInfo方法 Java.perform(function () {var Money Java.use(com.luoge.com.Money);/*** Java.choose是用来在内存中找一个对象的* 第一个参数是要找的对象的路径* 第二个参数是回调函数回调函数中有三个参数分别是obj, onMatch找到对象后执行, onCompleteonMatch执行完后执行* 下面代码的意思是在内存中找一个com.luoge.com.Money的对象找到后执行onMatch方法然后调用它的obj.getInfo()方法* */Java.choose(com.luoge.com.Money, {// obj是com.luoge.com.Money的对象也就是this// onMatch 是找到对象后执行也就是找到com.luoge.com.Money后执行onMatch方法onMatch: function (obj) {console.log(obj , obj.getInfo());},onComplete:function(){// 当 onMatch 执行完后会执行 onComplete 方法console.log(执行完成);}})
})创建类对象并修改属性调用方法 Java.perform(function () {// 获取目标类var MoneyClass Java.use(com.luoge.com.Money);// 创建对象实例这里假设使用无参构造函数var moneyObj MoneyClass.$new(frdaNewName, 99999);// 获取 name 属性的引用var nameField MoneyClass.class.getDeclaredField(name);// 如果属性是私有的需要设置可访问nameField.setAccessible(true); // 修改 name 属性值nameField.set(moneyObj, frdaNewName222);// 直接赋值MoneyClass.flag.value frdaNewFlag;// 调用对象的方法var result moneyObj.getInfo();// 打印结果console.log(调用 getInfo 方法的结果: , result);
});