手机和模拟器的 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
文章会随着本人学习程度的加深而更新,欢迎关注和收藏。文章到此结束,谢谢大家,有问题,欢迎讨论。
相关文章:
手机和模拟器的 Frida 环境配置
目录 一、配置 JDK 和 android 环境 二、连接设备和查看权限 1、连接设备 2、查看手机权限 三、手机配置 Frida 1、frida-server下载 2、验证 四、模拟器配置 Frida 1、下载模拟器并调节成手机版: 2、连接并查看架构 3、配置并开启 x86 的 frida-serve…...
力扣1385.两个数组间的距离值
力扣1385.两个数组间的距离值 二分判断答案是否正确 class Solution {public:int findTheDistanceValue(vector<int>& arr1, vector<int>& arr2, int d) {ranges::sort(arr2);ranges::sort(arr1);int m arr2.size();auto check [&](int low,int h…...
[C++] 小游戏 斗破苍穹 2.11.6 版本 zty出品
大家好,今天zty带来的是斗破苍穹的 2.11.6 版本,这个版本主要更新了:1、背包 2、将退出游戏改到了设置里面 3、如果不逃跑不会停止战斗。废话不多说, 先赞后看 养成习惯 code #include<stdio.h> #include<iostrea…...
认识与学习JSP
JSP核心技术 什么是JSP JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实际上就是Servlet JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm…...
MySql 各种 join
MySql 定义了很多join的方式,接下来我们用一个例子来讲解。 用到的表 本文用到了两个表s1,s2: 内外连接 测试 1 1 1.select * from s1 inner join s2 on(s1.id s2.id);: -------- | id | id | -------- | 3 | 3 | | 4 | 4 | --------2…...
【Android面试八股文】Android中操作多线程的方式有哪些?
文章目录 1. 使用 `Thread` 和 `Runnable`2. `AsyncTask`3. `Handler` 和 `Looper`4. `HandlerThread`5. `ThreadPoolExecutor`6. `IntentService`7. `RxJava`8. `Coroutine`(协程)9. `WorkManager`在Android开发中,有多种方式可以进行多线程操作。以下是主要的几种方式: 1…...
语义分割和目标检测的关系
目录 1.语义分割的目标 2.目标检测的目标 3.两种任务的异同之处 从大方向的任务特点上来说 (1)物体的位置 (2)物体的分类 从数据格式来说 (1)语义分割的数据格式 (2)目标检测的数据格式 1.语义分…...
SpringBoot 大文件基于md5实现分片上传、断点续传、秒传
SpringBoot 大文件基于md5实现分片上传、断点续传、秒传 SpringBoot 大文件基于md5实现分片上传、断点续传、秒传前言1. 基本概念1.1 分片上传1.2 断点续传1.3 秒传1.4 分片上传的实现 2. 分片上传前端实现2.1 什么是WebUploader?功能特点接口说明事件APIHook 机制 …...
数据资产治理与数据质量提升:构建完善的数据治理体系,确保数据资产的高质量与准确性
一、引言 随着信息技术的迅猛发展,数据已经成为企业和社会发展的重要资产。然而,数据资产的有效治理与数据质量的提升,是企业实现数字化转型、提升竞争力的关键。本文旨在探讨数据资产治理与数据质量提升的重要性,并提出构建完善…...
SylixOS下UDP组播测试程序
SylixOS下UDP组播测试 测试效果截图如下: udp组播发送测试程序。 /********************************************************************************************************* ** ** 中国软件开源组织 ** ** …...
Web前端快速开发平台:革命性工具,提升开发效率的新篇章
Web前端快速开发平台:革命性工具,提升开发效率的新篇章 在数字化时代的浪潮中,Web前端技术的快速发展与变革正在重塑我们的数字世界。为了应对这种快速变化,Web前端快速开发平台应运而生,为开发者们提供了更加高效、便…...
内窥镜系统设计简介
内窥镜系统设计简介 1. 源由2. 系统组成2.1 光学系统2.2 机械结构2.3 电子系统2.4 软件系统2.5 安全性和合规性2.6 研发与测试2.7 用户培训与支持 3. 研发过程3.1 光学系统Step 1:镜头设计Step 2:光源Step 3:成像传感器 3.2 机械结构Step 1&a…...
使用Spring Boot实现Redis多数据库缓存
Redis多数据库存储实现用户行为缓存 在我的系统中,为了优化用户行为数据的存储与访问效率,我引入了Redis缓存,并将数据分布在不同的Redis数据库中。通过这种方式,可以减少单一数据库的负载,提高系统的整体性能。 主要…...
揭秘newSingleThreadExecutor:深度解析与源码探秘
1. 概述 newSingleThreadExecutor是Java线程池框架中Executors类的一个静态方法,它返回一个线程池实例,该线程池维护一个单一的工作线程来执行任务。这个线程池的特性在于它保证了所有提交的任务会按照它们在队列中的顺序依次执行,而不会并发执行。它适用于需要保证任务顺序…...
使用python绘制三维散点图
使用python绘制三维散点图 三维散点图三维散点图的用途效果代码 三维散点图 三维散点图(3D Scatter Plot)是一种用于展示三维数据的图表。与二维散点图类似,三维散点图通过点在三维空间中的位置来表示数据点的三个特征。每个点在 x、y 和 z …...
Vue51-插件
一、插件的定义 vue里面的插件,类似于游戏的外挂。 vue中插件的本质:一个对象,里面必须包含install方法。 二、插件的使用 2-1、创建一个插件js文件(写在src中plugins.js) 2-2、应用插件:Vue.use(插件) …...
python将一个整数转为字符串列表
如果你想要将一个整数转换为字符串列表,其中每个数字(0-9)都是列表中的一个元素,你可以先将整数转换为字符串,然后遍历这个字符串,将每个字符添加到列表中。这里是一个简单的示例: # 假设你有一…...
PTA 6 - 20 汉诺塔问题(py 递归)
这道题是一道比较典型的递归问题,他跟斐波那契数列的本质是一样的,大家自己动手推理一下,非常好推 参考代码: def hanoi(n,a,b,c):global stepif n 1:print(a,"->",c)step 1else:hanoi(n-1,a,c,b)print(a,"…...
深度学习Day-20:DenseNet算法实战 乳腺癌识别
🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 一、 基础配置 语言环境:Python3.8编译器选择:Pycharm深度学习环境: torch1.12.1c…...
给类设置serialVersionUID
第一步打开idea设置窗口(setting窗口默认快捷键CtrlAltS) 第二步搜索找到Inspections 第三步勾选主窗口中Java->Serializations issues->下的Serializable class without serialVersionUID’项 ,并点击“OK”确认 第四步鼠标选中要加…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
