当前位置: 首页 > news >正文

12.安卓逆向2-frida hook技术-HookJava重载方法

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

工具下载:

链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89

提取码:zy89

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:11.安卓逆向2-frida hook技术-HookJava静态方法和实例方法

hook重载方法,下图方法名一样,入参不一样

怎么hook?首先写下方的代码,进行hook

Java.perform(function () {var Utils = Java.use('com.luoge.com.Utils');Utils.getOver.implementation = function () {var res = this.getOver();console.log('hook getOver()成功', res);return res;}
})

如下图然后会报错

.overload() .overload('int') .overload('com.luoge.com.Money')

报错信息中的这三个就是用来hook重载的

.overload()表示hook无参的getOver方法

.overload('int')表示hook有参的getOver(int i)方法

.overload('com.luoge.com.Money')表示hook有参的getOver(Money money)方法

hook无参的

Java.perform(function () {var Utils = Java.use('com.luoge.com.Utils');Utils.getOver.overload().implementation = function () {var res = this.getOver();console.log('hook getOver()成功', res);return res;}
})

hook有参getOver(int i)方法

Java.perform(function () {var Utils = Java.use('com.luoge.com.Utils');Utils.getOver.overload('int').implementation = function (i) {console.log('hook getOver(int i)入参 ', i);var res = this.getOver(i);console.log('hook getOver(int i)返回值', res);return res;}
})

hook有参getOver(Money money)

Java.perform(function () {var Utils = Java.use('com.luoge.com.Utils');Utils.getOver.overload('com.luoge.com.Money').implementation = function (i) {console.log('hook getOver(Money money)入参 ', i);var res = this.getOver(i);console.log('hook getOver(Money money)返回值', res);return res;}
})

java常用参数对应的Frida参数

一次hook所有重载方法

Java.perform(function () {var targetClass = Java.use('com.luoge.com.Utils');// 使用 overloads 函数获取所有重载方法var methods = targetClass['getOver'].overloads;console.log(methods)console.log(methods.length,'多少个重载方法')// 遍历所有的重载方法并进行钩子for (var i = 0; i < methods.length; i++) {(function(method) {method.implementation = function () {// console.log('方法被调用:', method);for (var j = 0; j < arguments.length; j++) {console.log('参数' + j + ':', arguments[j]);}// 调用原始方法var ret = method.apply(this, arguments);console.log('返回值:', ret);return ret;};})(methods[i]);}
})


img

相关文章:

  • 飞书多维表格利用 Amazon Bedrock AI 能力赋能业务
  • vscode 保存 js 时会自动格式化,取消设置也不好使
  • 【游戏项目】大型项目Git分支策略与开发流程设计构想
  • cocosCreator 2.4 使用 flavor 配置安卓多渠道
  • 变压吸附制氮设备的工艺特点
  • 深入理解Python协程:async def、async for、await、yield详解
  • Kubernetes 内部服务转发配置
  • 无人机智能运行系统技术解析
  • windows基线配置
  • 记录下blog的成长过程
  • 2025年渗透测试面试题总结-长亭科技[社招]应急响应工程师(题目+回答)
  • 护照阅读器在景区的应用
  • Linux 复制文件到另一个文件夹方法
  • linux学习记录(六)三个常用命令介绍
  • 大模型笔记_模型微调 vs RAG
  • 【鸿蒙表格组件】鸿蒙ArkTS轻量级表格高效渲染组件
  • 华为云Flexus+DeepSeek征文|华为云CCE容器高可用部署Dify LLM应用后的资源释放指南
  • 6个月Python学习计划 Day 21 - Python 学习前三周回顾总结
  • 如何制定兼容多个项目的整体时间计划?
  • 五款MySQL 可视化客户端软件
  • 微信公众号做公司网站/东莞今日新闻大事
  • 苏州建设网站电话/网站排名seo
  • 宇说建筑网站/seo应该怎么做
  • 网站栏目标题/站长工具果冻传媒
  • 三个字的洋气商标名字/搜索引擎优化的主要策略
  • 蚌埠公司做网站/百度一下首页下载安装桌面