雷电模拟器上使用第一个frida(四)第一个HOOK

经过上述三篇,已经可以使用python3.8.10编写代码,利用frida14.2.18和雷电模拟器9.0.60(9),Android 9交互。

雷电模拟器上使用第一个frida(一)之安装-CSDN博客

雷电模拟器上使用第一个frida(二)之su超级权限-CSDN博客

雷电模拟器上使用第一个frida(三)简单的使用实例_小小爬虾的博客-CSDN博客


下面,记录用模拟器的一个APP的登录来进行HOOK测试,用python代码监控登录情况,返回登录时的参数。

一、抓包

二、逆向

三、HOOK

一、 利用Charles抓包,参考文章:

如何在雷电模拟器上安装Magisk并加载movecert模块抓https包(一)-CSDN博客

如何在雷电模拟器上安装Magisk并加载movecert模块抓https包(二)_小小爬虾的博客-CSDN博客

 多抓几次登录包:

发现只有riskSecret会变化,其它参数没有变化,且密码也没有加密。

二、使用jadx逆向

运行jadx-gui.bat,加载此APP的apk。然后点击“放大镜”图标,弹出“搜索文本”(需等待)。 

搜索:riskSecret,出现两个结果。 

 一个一个看,双击条目即跳转到代码位置。

(1)第一条

(2)第二条

 三、用Python编写HOOK代码

 针对上述两处代码,分别进行hook。

(1)代码如下

import frida
import sys#运行代码前,一定要先在手机模拟器上启动该app
rdev = frida.get_remote_device()session = rdev.attach("com.beauty.drama")#包名scr = """
Java.perform(function () {//包.类var UserModel = Java.use("com.television.amj.application.UserModel");UserModel.getParamMapNew.implementation = function(){console.log("123");var res = this.getParamMapNew();console.log(res);return res;}});
"""script = session.create_script(scr)script.load()
sys.stdin.read()

(2)代码如下

import frida
import sys#运行代码前,一定要先在手机模拟器上启动该app
rdev = frida.get_remote_device()session = rdev.attach("com.beauty.drama")#包名scr = """
Java.perform(function () {//包.类var UserModel = Java.use("com.television.amj.application.UserModel");UserModel.getParamMap.implementation = function(){console.log("123");var res = this.getParamMap();console.log(res);return res;}});
"""script = session.create_script(scr)script.load()
sys.stdin.read()

分别运行代码后,在手机模拟器上输入账号和密码,点击登陆,发现(2)处有返回值,(1)处无反应。说明登录时,程序走的是第二处。

最后,图示Hook时候与逆向java代码的对应关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/107550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据Doris(十一):添加FS_BROKER步骤

文章目录 添加FS_BROKER步骤 一、 ​​​​​​​配置broker节点

机器学习(22)---信息熵、纯度、条件熵、信息增益

文章目录 1、信息熵2、信息增益3、例题分析 1、信息熵 1. 信息熵(information entropy)是度量样本集合纯度最常用的一种指标。信息的混乱程度越大,不确定性越大,信息熵越大;对于纯度,就是信息熵越大,纯度越低。 2. 纯度…

Spark工作流程

Spark 的整个工作流程可以概括为以下步骤: 创建 SparkSession: 应用程序首先需要创建一个 SparkSession 对象,它是与 Spark 的交互入口。SparkSession 提供了对核心功能和各个模块的访问。 加载数据: 使用 SparkSession 提供的 AP…

Python 中的模糊字符串匹配

文章目录 Python中使用thefuzz模块匹配模糊字符串使用process模块高效地使用模糊字符串匹配今天,我们将学习如何使用 thefuzz 库,它允许我们在 python 中进行模糊字符串匹配。 此外,我们将学习如何使用 process 模块,该模块允许我们借助模糊字符串逻辑有效地匹配或提取字符…

MySQL锁学习笔记

锁 事务的隔离性由锁来实现。 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我…

论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】

文章目录 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】背景:数据分析师工作范围基于GPT-4的端到端数据分析框架将GPT-4作为数据分析师的框架的流程图 实验分析评估指标表1:GPT-4性能表现表2&…

工序解释执行程序--工程师的成长

多年前一个项目主要做一台机器,读取文件数据并解释执行,吸合电磁阀或点亮相应的LED,提示工人操作 文件格式 A 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 11 11 …

Qt编程,TCP编程、数据库

目录 1、TCP: QTcpServer | QTcpSocket 1、 ##TCP客户端 1、//连接成功信号 2、//连接断连信号 3、 //数据就绪信号 4、 //连接到服务器,使用服务器的IP地址和端口 5、//发送数据到服务器 6、//从服务器接收数据 2、##TCP服务器端 1、//创建TCP服务器对象 2、//新连接信号 3、…

linux之shell记录

shell属于一种很容易学习的程序设计语言,依赖于功能强大的命令可以编写提高开发效率的脚本。这里记录一下常用的shell相关的知识点。 持续更新中。。。 1、在linux或mac中查看使用的shell echo $SHELL /bin/bashshell是一种脚本语言,就会有解释器来执行…

Spring中注入的使用

目录 一、什么是注入(Injection) 1.1 为什么要注入 二、注入的基本使用 三、Spring注入原理分析 一、什么是注入(Injection) 注入就是通过Spring的配置文件,为所创建对象的成员变量进行赋值 1.1 为什么要注入 书接上…

Java 中实现单例模式

单例模式 单例模式,就是一个类在任何情况下绝对只有一个实例,并且提供一个全局访问点来获取该实例。 要实现单例,至少需要满足两个点: 私有化构造方法,防止被外部实例化造成多实例问题 提供一个静态方位作为全局访问点…

Linux:进程控制

目录 一、进程创建 写时拷贝 二、进程终止 echo $? 如何终止进程 _exit与exit 三、进程等待 进程等待的必要性 进程等待的操作 wait waitpid status 异常退出情况 status相关宏 options 四、进程程序替换 1、关于进程程序替换 2、如何进行进程程序替换 程序…

函数防抖(javaScript)

防抖说明 (1)防抖的目的: 当多次执行某一个动作的时候,限制函数调用的次数,节约资源。 (2)防抖的概念: 函数防抖(debounce):就是指触发事件后&…

Python中图像相似性度量方法汇总

1. 引言 在当前到处充满着图像的世界里,测量和量化图像之间的相似性已经成为一项关键的任务。无论是图像检索、内容推荐还是视觉搜索,图像相似性方法在现代计算机视觉的应用中都发挥着关键的作用。 幸运的是,Python提供了大量的工具和库&am…

想要精通算法和SQL的成长之路 - 分割数组的最大值

想要精通算法和SQL的成长之路 - 分割数组的最大值 前言一. 分割数组的最大值1.1 二分法 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 分割数组的最大值 原题链接 首先面对这个题目,我们可以捕获几个关键词: 非负整数。非空连续子数组。 那么我…

组合数(1) 用Vector实现获取所有组合数列表的QT实现

1.工程文件 QT coreCONFIG c17 cmdline# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.…

BIM轻量化技术简介

BIM轻量化技术是指在工程建筑的BIM模型建立之后(利用专业的BIM建模软件,比如Autodesk Revit, Bentley MicroStation, DS Catia等),通过对BIM模型的压缩处理等技术手段,让BIM可以在各类WEB浏览器、移动App上被使用的技术…

【RTOS学习】优先级 | Tick | 任务状态 | 空闲任务 | 任务调度

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 优先级 | Tick | 任务状态 | 空闲任务 | 任务调度 🏀优先级⚽任务管理 🏀T…

LockSupport-park和unpark编码实战

package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.LockSupport;/*** author zhou* version 1.0* date 2023/10/16 9:11 下午*/ public class LockSupportDemo {public static void main(String[] args) {…

批处理文件(.bat)中,dir与tree命令的效果

目录 dir命令 用法 操作 效果 dir /? dir dir D:\111\111_3 dir D:\111 *.mp4 dir D:\111 /ad dir D:\111 /ar dir D:\111 /s dir D:\111\111_3 >1bat.txt dir D:\111 >>1bat.txt tree命令 用法 操作 效果 tree /? tree tree D:\111\111_3 tree…