[Frida入门教程] 一文搞定Frida环境搭建,基于逍遥模拟器(虚拟设备)和ADB(Android Debug Bridge)

本文主要是介绍[Frida入门教程] 一文搞定Frida环境搭建,基于逍遥模拟器(虚拟设备)和ADB(Android Debug Bridge),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章流程

  • 搭建 Frida 工作环境 [Windows]
    • 操作环境与资源
      • 本文所用fs(Frida-server)文件
    • 各工具环境搭建/安装方法
    • 开始搭建Frida环境
      • 1. push fs(Frida-server) 文件至虚拟设备
        • 实际操作图 (push / 必看)
      • 2. 给予 Frida-server 最高权限
        • 实际操作图(chmod / 必看)
      • 3. 运行 Frida-server
    • 全部操作流程
    • 验证Frida-server工作

搭建 Frida 工作环境 [Windows]

  • 本文含有大量图片与文字描述,对新手较友好,但可能会略显臃肿,可酌情跳读。

  • 本文更新于 2022/6/8 ,使用工具均为最新版。

  • 本文首发CSDN,禁止搬运,转载!

原作者: @漫游感知 [https://blog.csdn.net/qq_45429426]


操作环境与资源

在正式开始前,需要先了解本文开发环境并下载一些必要的工具!

操作系统:Windows 10
解释器: Python 3.7x
Frida-server 版本15.1.24 (点击版本号跳转至Github,请确保Frida-server与本地Frida版本对应,架构版本确认方法请看下文【逍遥模拟器为 x86_64
ADB(Android Debug Bridge):点我下载,免费不限速 (蓝奏云链接)
逍遥模拟器: 跳转官网下载 (Version:8.x)

本文所用fs(Frida-server)文件

本文所用 frida-server-15.1.24-android-x86_64 点击蓝字下载(蓝奏云链接)


各工具环境搭建/安装方法

Python:没什么可说的,安装Python3即可,唯一需要注意的就是保证pip可以正常工作

Frida 安装指令(如果下载慢或失败,请加上 -i 参数换源):
pip install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
[installing]
安装后在 CMD 输入 frida --version 出现下图反应代表安装成功
installed

ADB(Android Debug Bridge) 环境搭建:
在前文下载好压缩包后解压至任意路径路径最好不要含有中文

1.解压后文件夹目录如下图所示:ADB 解压目录
2.复制ADB文件路径,配置环境变量
ADB 路径
3
4
CMD中输入 adb --version 出现下图反应代表完成环境设置
cndver
逍遥模拟器虚拟设备设置
1.安装完成后,启动逍遥模拟器,检测root权限是否开启(默认开启)
Root
2.开启开发者模式并开启USB调试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逍遥模拟器设置结束


开始搭建Frida环境

在确保上述步骤均成功的情况下,我们开始搭建Frida工作环境(部署Frida)

下文所用文件均在前文 操作环境与资源 中免费给出,可自行下载,无限速

1. push fs(Frida-server) 文件至虚拟设备

逍遥模拟器的虚拟设备默认端口为 21503 每增加一个虚拟设备,其端口号“加10”,如第一个虚拟设备的端口是21503,那么第二个虚拟设备的端口就是21513

  1. 先终止一下ADB服务
adb kill-server
  1. 通过指令链接到逍遥模拟器
adb connect 127.0.0.1:21503
  1. 列出已知设备
adb devices
  1. 链接设备(注意!请确保已按照上文方法开启【USB调试】如果显示已知设备不唯一,则可以通过 -s <设备> 参数指定设备,如:adb -s 127.0.0.1:21503 shell
adb shell

获取设备架构信息(用于确认Frida-server版本)指令
adb shell 成功后,在shell对话中输入 getprop ro.product.cpu.abi 即可获取设备架构信息
获取架构信息后,再与安装的Frida版本结合,便可前去Github下载
其Frida-server文件命名格式如下:
frida-server-<Frida版本>-android-<设备架构版本>.xz
你也可以选择安装Frida15.1.24版本,使用前文给出配文Frida-server文件

  1. push fs(Frida-server)文件至 /data/local/tmp
  • exit 退出shell会话
  • 再输入 adb push <Frida-server 文件绝对路径> /data/local/tmp

至此 push fs 文件完成


实际操作图 (push / 必看)

push


2. 给予 Frida-server 最高权限

  1. 输入 adb shell 再次打开shell会话
  2. 输入 cd /data/local/tmp 进入 Frida-server(fs)所在目录
  3. ls 列出目录下文件 / ls -l 列出目录下文件权限
  4. 输入 chmod 777 fs 给予 Frida-server 最高权限
  5. ls -l 一下,看fs文件权限是否改变为-rwxrwxrwx

实际操作图(chmod / 必看)

chmod


3. 运行 Frida-server

1. 先cd到Frida-server (fs)文件所在目录,再输入 ./fs (前文操作已经到达fs文件目录,无需再cd)

注意!!!一旦输入 [./fs] 后,不要关闭此CMD窗口!不然Frida-server会停止运行!


全部操作流程

frida inited


验证Frida-server工作

  1. 新开启一个CMD
  2. 输入 adb forward tcp:27042 tcp:27043 进行端口转发(一般不转发也没事)
  3. 再输入 frida-ps -U ,令其列出所有进程

如果响应如下图所示,则代表Frida-server 正常工作 / Frida 环境搭建完成!!!
show process


至此,本文结束。如果文中出现错误,还望指出!

原作者: @漫游感知 [https://blog.csdn.net/qq_45429426]


这篇关于[Frida入门教程] 一文搞定Frida环境搭建,基于逍遥模拟器(虚拟设备)和ADB(Android Debug Bridge)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程