手机和模拟器的 Frida 环境配置

目录

一、配置 JDK 和 android 环境

二、连接设备和查看权限

1、连接设备

2、查看手机权限

三、手机配置 Frida 

1、frida-server下载

2、验证

四、模拟器配置 Frida 

1、下载模拟器并调节成手机版:

2、连接并查看架构

3、配置并开启 x86 的 frida-server

4.转发端口,进行监听

5、实验一下

五、配置客户端


因为要学习手机端的自动化,所以来学习 Frida,建议直接看第一和第四。

一、配置 JDK 和 android 环境

链接:配置 JDK 和 Android SDK-CSDN博客

二、连接设备和查看权限

1、连接设备

 1) 拿出你的手机-----打开手机设置------找到关于手机-------一直点击版本号直到出现提示,华为的点击 harmonyOS 版本(型号代码下方的);

(2) 打开手机的开发者选项(华为的在系统与更新里面),该开的开(USB调试、仅充电模式下允许ADB调试),该关的关,特别是 USB 调试这里一定要打开。

(3) 测试是否连接成功,在终端输入‘adb devices -l’,查看连接的设备,如果列表为空,检查一下是不是有以上原因(1)(2)。(如果出现error: no devices found,参考链接:学习使用 Frida 过程中出现的问题-CSDN博客)

连接成功也可以看到此电脑下出现设备

2、查看手机权限

你可以使用 adb 命令来检查设备是否已 root:

adb shell whoami

如果返回 root,则表示设备已 root。如果返回 shell,则表示设备未 root。

使用 adb shell 进入设备后,输入 su,若出现如下:

表明要开启权限,没开启(配置 Frida 也没用),开启 root 参考:华为android手机root,华为手机怎么root-CSDN博客 等等。root 需谨慎。

本人自己也没搞好,真难,因为手机有用,准备换模拟器,看第四点。

三、手机配置 Frida 

1、frida-server下载

下载链接:Releases · frida/frida · GitHub

注意问题:有时候可能遇到跳转到gitcode的链接,gitcode上似乎只有源码,不清楚是什么。

我下载的是最新版本之前的一个版本,如下所示:四个分别是ARM 架构32位、 64位、 Intel x86 架构的32位、64位,我们手机一般是ARM64架构,所以下载 arm64的。查看架构,使用命令:

adb shell getprop ro.product.cpu.abi

下载,解压后,查看下载文件状态,文件名很长

把它作为 frida 服务端环境,推到手机的 /data/local/tmp 目录。在该文件所在文件夹 cmd,输入下方命令。(要查看删除手机中的特定文件夹下的文件,可参考:adb shell进入设备后的命令-CSDN博客)

adb push frida-server-16.3.1-android-arm64 /data/local/tmp/

修改文件权限为755:

adb shell chmod 755 /data/local/tmp/frida-server-16.3.1-android-arm64

2、验证

使用命令 frida-ps -U,出现如下图所示,表明配置安装成功。

四、模拟器配置 Frida 

参考链接:夜神模拟器安装frida-server图文详解-CSDN博客

1、下载模拟器并调节成手机版:

链接:夜神安卓模拟器-手游模拟器电脑版_夜神模拟器官网

2、连接并查看架构

到 bin 目录,右键在终端打开后者上方 cmd打开命令行窗口

连接:

adb connect 127.0.0.1:62001

查看架构

adb shell getprop ro.product.cpu.abi

3、配置并开启 x86 的 frida-server

下载,解压,在解压后的目录里打开cmd,输入 adb connect 127.0.0.1:62001连接:

使用命令将 frida-server 放入模拟器中:

adb push frida-server-16.3.1-android-x86 /data/local/tmp/

查看模拟器中文件等命令可参考:adb shell进入设备后的命令-CSDN博客

之后使用以下命令

adb shell 
su
cd /data/local/tmp
chmod 755 frida-server-16.3.1-android-x86
./frida-server-16.3.1-android-x86

运行命令,返回以下信息则说明已经运行中(即:成功启动了frida-server),这个shell(cmd窗口)不能关闭,否则 frida 就关了。

4.转发端口,进行监听

另开一个cmd命令窗口,在夜神模拟器安装目录 bin 下打开cmd,输入 adb connect 127.0.0.1:62001

转发端口,进行监听

adb forward tcp:27042 tcp:27042

adb forward tcp:27043 tcp:27043

查看进程,frida-ps -U 输出说明已经安装成功

5、实验一下

下载一个软件,例如拼多多。打开拼多多

在命令窗口使用命令,查看正在运行的服务:

 adb shell dumpsys activity | findstr "mResume"

使用以下命令跟踪pinduoduo里的Open()函数(这时候要保持frida-server是开启着的):

frida-trace -U -i open -N com.xunmeng.pinduoduo

可以看到主控端的命令行关于 open() 的输出了:

  • 现在可以实时的修改JavaScript脚本,并且在Android的App里面深挖了。

五、配置客户端

在 PC 上安装 Python 的运行环境,安装完成后执行下面的命令安装 frida

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple frida==16.3.1#版本尽量相同
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple frida-tools
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple objection

文章会随着本人学习程度的加深而更新,欢迎关注和收藏。文章到此结束,谢谢大家,有问题,欢迎讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windwos下运行程序如何不弹出黑窗口(控制台窗口)

一、在程序最开始处加一句: #pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup") 二、在CMakeLists.txt里面加上WIN32

Navicat+sqlite操作数据

使用navicat操作数据库(比如sqlite数据库)可以实现与access(参考该文)一样的操作,可以导入导出excel等格式的文件,如下图所示。 两种方式的sql语句的语法也基本一样。

【代码随想录】【算法训练营】【第32天】 [122]买卖股票的最佳时机II [376]摆动序列 [53]最大子序和

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 32,一个不上班的周六,坚持一了一点~ 题目详情 [122] 买卖股票的最佳时机II 题目描述 122 买卖股票的最佳时机II 解题思路 前提:单链表 删除元素 思路&a…

Python异步爬虫批量下载图片-协程

import aiofiles import aiohttp import asyncio import requests from lxml import etree from aiohttp import TCPConnectorclass Spider:def __init__(self, value):# 起始urlself.start_url value# 下载单个图片staticmethodasync def download_one(url):name url[0].spl…

SpringBoot: 启动流程和类装载

前面我们学过Spring定制了自己的可执行jar,将真正执行时需要的类和依赖放到BOOT-INF/classes、BOOT-INF/lib来,为了能够识别这些为止的源文件,Spring定制了自己类加载器,本节我们来讲解这个类加载器。本节涉及的内容主要包括: Sp…

STM32F103单片机工程移植到航顺单片机HK32F103注意事项

一、简介 作为国内MCU厂商中前三阵营之一的航顺芯片,建立了世界首创超低功耗7nA物联网、万物互联核心处理器浩瀚天际10X系列平台,接受代理商/设计企业/方案商定制低于自主研发十倍以上成本,接近零风险自主品牌产品,芯片设计完成只…

HC-SR505人体感应灯

1硬件 1.1硬件组成 1.正点原子探索者开发板 2 HC-SR505迷你小型人体感应模块 3 继电器+5V小灯 HC-SR505迷你小型人体感应模块介绍 1.2 硬件连接 1.HC-SR505(连接在PE0) 2.继电器(连接在PE1) 2.主要代码 int ma…

ReactRouter——路由配置、路由跳转、带参跳转、新route配置项

目录 写在前面 (一)初步使用router 1.安装react-router-dom 2.创建router结构 3.嵌套路由 4.配置not found页面 (1)确切路由报错页面 (2)未配置路由报错页面 5.重定向 (二)路由跳转 1.组件跳转 2.NavLink 3.js跳转 (三)传递参数 1.searchParams(query)参数 2…

ubuntu使用docker安装openwrt

系统:ubuntu24.04 架构:x86 1. 安装docker 1.1 离线安装 docker下载地址 根据系统版本,依次下载最新的三个关于docker的软件包 container.io(注意后缀版本顺序)docker-ce-clidocker-ce 然后再ubuntu系统中依次按顺…

如何自动化地评估 AIGC 生图的质量?

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

【Spring Boot】异常处理

异常处理 1.认识异常处理1.1 异常处理的必要性1.2 异常的分类1.3 如何处理异常1.3.1 捕获异常1.3.2 抛出异常1.3.4 自定义异常 1.4 Spring Boot 默认的异常处理 2.使用控制器通知3.自定义错误处理控制器3.1 自定义一个错误的处理控制器3.2 自定义业务异常类3.2.1 自定义异常类3…

Cweek4+5

C语言学习 十.指针详解 6.有关函数指针的代码 代码1:(*(void (*)())0)(); void(*)()是函数指针类型,0是一个函数的地址 (void(*)())是强制转换 总的是调用0地址处的函数,传入参数为空 代码2:void (*signal(int, void(*)(int))…

AE电源pinnacle软件新款老款二款软件

AE电源pinnacle软件新款老款二款软件

高速USB转串口芯片CH343

CH343封装 截止目前,主要封装有 SOP16: CH343G QFN16: CH343P ESSOP10: CH343K,截止24年6月未生产 CH343串口速度 最高串口速度: 6Mbps,比CH340的2M,快3倍 1、概述 参考版本:1E CH343 是一个 USB 总线的转接芯片,…

国标GB/T 28181详解:校时流程详细说明

目录 一、定义 二、作用 1. 时间同步性 2. 事件记录的准确性 3. 跨平台、跨设备协作 4. 降低时间误差 5. 安全性提升 三、基本要求 四、命令流程 五、协议接口 六、校时效果 1、未校时的情况 2、校时后的效果 七、参考 一、定义 GB28181协议要求所有的监控设…

把系统引导做到U盘,实现插上U盘才能开机

前言 有个小伙伴提出了这样一个问题:能不能把U盘制作成电脑开机的钥匙? 小白稍微思考了一下,便做了这样一个回复:可以。 至于为什么要思考一下,这样会显得我有认真思考他提出的问题。 Windows7或以上系统均支持UEF…

Cannot access spring-snapshot (https://repo.spring.io/snapshot) in offline mode

Maven报错 这个选项是脱机工作,意思就是不读取远程仓库,只读取本地已有的仓库,之所以报错原因就是本地仓库是空的,然而选择了脱机工作

Android.mk文件生成的so工程文件并Debug调试native code

1.这里主要展示一下从最原始先新建一个工程 2.将hello的子工程文件放入上面新建好的工程里面,直接拷贝放置这里 3.修改根目录下的settings.gradle 加入hello 4.app工程下的build.gradle加入依赖,这样就可以识别hello中的java包文件 5.MainActivity 中来&…

Redis主从同步

master如何得知salve是否是第一次来同步呢?? 有几个概念,可以作为判断依据: Replication Id:简称replid,是数据集的标记,replid一致则是同一数据集。每个master都有唯一的replid,s…

C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类

前言: 在前面,我们学习了C的类与对象,认识到了C与C语言的一些不同,今天,我们将进入C的 关键部分——STL,学习完这部分之后,我们就可以清楚的认识到C相比于C语言的快捷与便利 目录 一、为什么有s…