14.安卓逆向2-frida hook技术-HookJava主动调用
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
工具下载:
链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89
提取码: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(找到对象后执行), onComplete(onMatch执行完后执行)* 下面代码的意思是在内存中找一个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);
});
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/248975.html
如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!