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

14.安卓逆向-frida基础-编写hook脚本2

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

内容参考于:图灵Python学院

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

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

上一个内容:13.安卓逆向-frida基础-编写hook脚本1

接着上一个内容继续,接下来是HOOK构造方法

如下图红框,它有两个构造方法

app中调用构造方法的位置

脚本代码

function demo4(){// HOOK构造方法var money = Java.use("com.luoge.com.Money")money.$init.overload("java.lang.String","int").implementation = function(str, ii){// 重写构造方法console.log(str, ii) // 查看原本参数的值str = "飞机"// 修改参数ii = 22222// 修改参数this.$init(str,ii) // 调用原本的构造方法}}

效果图:

主动调用

效果图:

function demo5(){var res = Java.use("com.luoge.com.Money").$new("xxx",23313).getInfo()console.log("主动调用", res)
}

第二种主动调用

function demo5(){var res = Java.use("com.luoge.com.Money").$new("xxx",23313).getInfo()console.log("主动调用", res)Java.choose("com.luoge.com.Money", {onMatch:function(obj){ // 这里每找到一个Money对象就会调用一次console.log('Java.choose', obj.getInfo())},onComplete:function(){console.log('Money对象搜索完执行的代码')}})
}

HOOK字段

字段就是下图红框里的东西

HOOK静态的字段

function demo6(){var money = Java.use("com.luoge.com.Money")console.log("flag类型", JSON.stringify(money.flag));console.log("flag的值", money.flag.value);money.flag.value = "mmmm"console.log("flag修改之后的值", money.flag.value);
}

HOOK非静态的字段

function demo6(){var money = Java.use("com.luoge.com.Money")
// console.log("flag类型", JSON.stringify(money.flag));
// console.log("flag的值", money.flag.value);
// money.flag.value = "mmmm"
//  console.log("flag修改之后的值", money.flag.value);Java.choose("com.luoge.com.Money", {onMatch:function(obj){ // 这里每找到一个Money对象就会调用一次console.log('Java.choose非静态变量(字段)', obj._name.value)obj._name.value = '张飞'console.log('Java.choose修改之后非静态变量(字段)', obj._name.value)},onComplete:function(){console.log('Money对象搜索完执行的代码')}})}

HOOK内部类

下图红框的就是内部类

效果图:

function demo7(){var innerClass = Java.use("com.luoge.com.Money$innerClass")// 内部类的对象使用$符号加类名获取innerClass.$init.overload("java.lang.String","int").implementation = function(s,i){console.log('demo7s', s);console.log('demo7i', i);this.$init(s,i);console.log(this.outPrint())}
}

获取全部类和方法

function demo8(){console.log(Java.enumerateLoadedClassesSync().join('\n'))
}

获取指定类的普通方法

function demo8(){
//    console.log(Java.enumerateLoadedClassesSync().join('\n'))var utils = Java.use("com.luoge.com.Utils")var methods = utils.class.getDeclaredMethods()for(var i = 0; i < methods.length; i++){console.log(methods[i].getName());}
}

获取指定类的构造方法

function demo8(){
//    console.log(Java.enumerateLoadedClassesSync().join('\n'))console.log('普通方法')var utils = Java.use("com.luoge.com.Utils")var methods = utils.class.getDeclaredMethods()for(var i = 0; i < methods.length; i++){console.log(methods[i].getName());}console.log('构造方法')var money = Java.use("com.luoge.com.Money")methods = money.class.getDeclaredConstructors()for(var i = 0; i < methods.length; i++){console.log(methods[i].toString());console.log(methods[i].getName());}}

获取指定类的字段

获取指定类的内部类

function demo8(){
//    console.log(Java.enumerateLoadedClassesSync().join('\n'))console.log('普通方法\n')var utils = Java.use("com.luoge.com.Utils")var methods = utils.class.getDeclaredMethods()for(var i = 0; i < methods.length; i++){console.log(methods[i].getName());}console.log('构造方法\n')var money = Java.use("com.luoge.com.Money")methods = money.class.getDeclaredConstructors()for(var i = 0; i < methods.length; i++){console.log(methods[i].toString());console.log(methods[i].getName());}console.log('字段\n')var field = money.class.getDeclaredFields()for(var i = 0; i < field.length; i++){console.log(field[i].toString())console.log(field[i].getName())}console.log('内部类\n')var c = money.class.getDeclaredClasses()for(var i = 0; i < c.length; i++){console.log(c[i].toString())console.log(c[i].getName())}}

安装 @types/frida-gum 插件,可以自动补齐Frida代码


img

相关文章:

14.安卓逆向-frida基础-编写hook脚本2

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…...

车辆零部件检测和分割数据集-车体数据集-yolo格式-yolov5-yolov10可用

这些标签是用于实例分割任务中的类别&#xff0c;通常在汽车图像识别或自动驾驶技术中使用。以下是这些类别&#xff1a; back_bumper - 后保险杠back_glass - 后挡风玻璃back_left_door - 后左车门back_left_light - 后左灯back_right_door - 后右车门back_right_light - 后右…...

甄选范文“论分布式存储系统架构设计”,软考高级论文,系统架构设计师论文

论文真题 分布式存储系统(Distributed Storage System)通常将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采用可扩展的…...

第十四章:html和css做一个心在跳动,为你而动的表白动画

💖 让心跳加速,传递爱意 💖 在这个特别的时刻,让爱在跳动中绽放!🌟 无论是初次相遇的心动,还是陪伴多年的默契,我们的心总在为彼此跳动。就像这颗炙热的爱心,随着每一次的跳动,传递着满满的温暖与期待。 在这个浪漫的季节,让我们一同感受爱的律动!无论你是在…...

poetry安装

文章目录 前言1. 为什么pip install poetry 会造成依赖冲突1.1 全局环境依赖混淆&#xff1a;1.2 工具和项目之间的冲突&#xff1a;1.3 缺乏依赖隔离&#xff1a;1.4 多出很多额外依赖&#xff1a; 2. 不推荐pipx安装3. poetry高级安装3.1 默认安装路径3.2自定义安装 4. 安装p…...

Proteus如何添加数码管

1、打开安装好的Proteus&#xff0c;点击上方菜单栏中的“库”&#xff0c;再选择“从库选取零件”&#xff0c;或者在左侧元件列表中单击鼠标右键&#xff0c;再点击右键菜单中的“从库中挑选”选项。 2、之后在元器件库中&#xff0c;点击类别中的“Optoelectronics”&#…...

5 apache poi实现excel的动态下拉框功能

excel下拉框 RequestMapping("xiala")public void xiala(HttpServletResponse response){String fileName "僵尸表";try{response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharact…...

深度对比:etcd、Consul、Zookeeper 和 Nacos 作为注册中心和配置中心的优势与劣势

在现代分布式系统和微服务架构中&#xff0c;服务注册中心 和 配置中心 是系统稳定运行的关键组成部分。服务注册中心负责服务的动态注册与发现&#xff0c;而配置中心用于集中管理配置&#xff0c;确保系统在变化的环境中保持一致性。本文将对比 etcd、Consul、Zookeeper 和 N…...

Android webview拦截H5的接口请求并返回处理好的数据

Android webview拦截H5的接口请求并返回处理好的数据 Android 可以通过 WebView 的 shouldInterceptRequest 方法拦截到 H5 中的网络请求。这是一个 WebViewClient 中的回调方法&#xff0c;允许开发者在 WebView 发起网络请求时对其进行处理和修改。 具体使用方法如下&#…...

vue echarts tooltip使用动态模板

先上代码 tooltip: {// 这里是车辆iconshow: true,// trigger: "item",// backgroundColor: "transparent",appendToBody: true,textStyle: {color: "#ffffff" //设置文字颜色},formatter: (params) > {return formatHtml(params.data)},}, …...

網路本地連接沒有有效的IP配置:原因與解決方法

網路本地連接顯示“沒有有效的IP配置”。這通常意味著你的電腦無法從路由器或其他網路設備獲取有效的IP地址&#xff0c;從而導致無法上網。本文將從原因和解決方法兩個方面&#xff0c;詳細解析這個問題。 一、問題的原因 路由器或數據機問題&#xff1a; 路由器或數據機出…...

如何使用ssm实现基于web的学生就业管理系统的设计与实现+vue

TOC ssm726基于web的学生就业管理系统的设计与实现vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上…...

TCP三次握手四次挥手详解

TCP三次握手建立连接的过程&#xff1a; 一次握手&#xff1a;客户端发送带有 SYN&#xff08;seqx&#xff09;标志的数据包到服务端&#xff0c;然后客户端进入 SYN_SEND 状态&#xff0c;等待服务端的确认。二次握手&#xff1a;服务端收到 SYN 包后&#xff0c;发送带有 S…...

了解 如何使用同快充充电器给不同设备快速充电

在这科技发展迅速的时代&#xff0c;快充技术已经走进了我们生活&#xff0c;不得不说有了快充技术的对比&#xff0c;传统的充电模式已经满足不了人们对充电速度的要求。就比如用华为输出100 W快充充电器为手机充电大概需要23分钟充满100%电量&#xff0c;而传统的充电器则需要…...

AGI interior designer丨OPENAIGC开发者大赛高校组AI创作力奖

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…...

Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!

&#x1f9f8;本篇博客重在讲解Centos安装docker&#xff0c;经博主多次在不同服务器上测试&#xff0c;极其的稳定&#xff0c;尤其是阿里的服务器&#xff0c;一路复制命令畅通无阻 &#x1f4dc;后续会退出ububtu安装docker教程&#xff0c;敬请期待 &#x1f4dc;作者首页&…...

QT day01

自定义实现登录界面&#xff1a; #include "widget.h" #include "ui_widget.h" #include<QPushButton> #include<QLineEdit> #include<QLabel>Widget::Widget(QWidget *parent) //定义有参构造函数: QWidget(parent), ui(new Ui::Widge…...

如何从飞机、电报中提取数据

电报&#xff0c;通常简称TG&#xff0c;是一个跨平台的即时通讯软件。客户端是开源的&#xff0c;而服务器是专有的。用户可以交换加密的、自毁的信息&#xff08;类似于“阅读后烧伤”&#xff09;&#xff0c;并共享各种文件&#xff0c;包括照片和视频。它的安全性很高&…...

【算法篇】二叉树类(2)(笔记)

目录 一、Leetcode 题目 1. 左叶子之和 &#xff08;1&#xff09;迭代法 &#xff08;2&#xff09;递归法 2. 找树左下角的值 &#xff08;1&#xff09;广度优先算法 &#xff08;2&#xff09;递归法 3. 路径总和 &#xff08;1&#xff09;递归法 &#xff08;2…...

Flask学习之项目搭建

一、项目基本结构 1、 exts.py 存在的目的&#xff1a;在Python中&#xff0c;如果两个或更多模块(文件)相互导入对方&#xff0c;就会形成导入循环。例如&#xff0c;模块A导入了模块B&#xff0c;同时模块B又导入了模块A&#xff0c;这就会导致导入循环。 比如在这个项目中…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...