雷电模拟器上使用第一个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

相关文章

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整