雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆以及两篇好用文章adb devices出现emulator-5554 offline的解决方案和Frida Hook方法大全

本文主要是介绍雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆以及两篇好用文章adb devices出现emulator-5554 offline的解决方案和Frida Hook方法大全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇通过hook确定了登录代码的位置,参考雷电模拟器上使用第一个frida(四)第一个HOOK之抓包-CSDN博客

接下来逆向分析一下,并用python实现其功能,并模拟登陆。

通过抓包分析,其实只要找到riskSecret如何生成的就行了。

在jadx逆向代码中,很明显

hashMap.put("riskSecret", MD5Utils.getMD5(packageName + str2 + currentTimeMillis + str + userToken2));

为了有一个直观认识,我们先HOOK一下getMD5这个函数,看看它的参数是什么内容?

在函数名上右键,“跳到声明”,发现有好多个getMD5,是重载函数。



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

启动pc端和手机端的frida。



重载函数的frida的hook写法:

import frida
import sys
#重载函数
#运行代码前,一定要先在手机模拟器上启动该app
rdev = frida.get_remote_device()session = rdev.attach("com.beauty.drama")#包名scr = """
Java.perform(function () {var act = Java.use("com.television.amj.utils.MD5Utils"); console.log(act.getMD5);act.getMD5.overload('java.lang.String').implementation = function (a) {console.log(a);var result = this.func.overload('java.lang.String').call(this,a)console.log(result);return result;
}});
"""script = session.create_script(scr)script.load()
sys.stdin.read()

拆分一下: 

com.beauty.drama包名

1a16d06bc57b69a1uuid(经过多次测试,本机是固定值)

1697369091599时间戳

将这三个字符串拼接起来做md5加密,就得到了riskSecret的值。

顺便写一下hook普通函数(带参数、带返回值)

 

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.getAndroidId.implementation = function(a){console.log(a);var res = this.getAndroidId(a);console.log(res);return res;}});
"""script = session.create_script(scr)script.load()
sys.stdin.read()

对应关系:

 




此篇备注两个好用的文章:

(1)adb devices出现emulator-5554 offline的解决方案

参考adb devices出现emulator-5554 offline的解决方案_长进长进的博客-CSDN博客

(2) Frida Hook方法大全(普通、重载、构造)

参考Frida Hook方法大全(普通、重载、构造)_frida hook 重载函数-CSDN博客

这篇关于雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆以及两篇好用文章adb devices出现emulator-5554 offline的解决方案和Frida Hook方法大全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/221176

相关文章

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变