当前位置: 首页 > news >正文

【Frida Android】实战篇1:环境准备

文章目录

    • 1 模拟器
    • 2 Android Studio
    • 3 Frida
      • 3.1 Frida-Server
      • 3.2 Frida-Client
    • 4 项目环境
      • 安装项目依赖
      • 配置package.json
    • 5 总结

⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。

建议学习本系列前,先大概过一遍Frida Android基础篇,实战篇上手会更快。

1 模拟器

为方便后续Android应用的调试与Hook操作,推荐使用网易MuMu模拟器,其兼容性较好且对新手友好。

官方下载地址

2025年11月笔者使用最新的 5.9.0 版本

在这里插入图片描述

2 Android Studio

Android Studio是安卓开发的官方IDE,除了开发功能外,它还可用于查看APK代码,并提供关键的ADB(Android Debug Bridge)工具——ADB是电脑与Android设备(模拟器/真机)通信的核心工具,可实现安装应用、调试程序、执行shell命令等功能。

官方下载

下载后需先配置Android SDK(软件开发工具包),SDK包含了安卓开发和调试所需的各类工具及系统镜像。

在这里插入图片描述

配置SDK环境变量
为了能在任意命令行窗口直接调用ADB等工具,需将SDK的安装路径添加到系统变量,并将该路径下的\platform-tools子目录(ADB工具所在目录)也配置到环境变量中。

在这里插入图片描述

在这里插入图片描述

3 Frida

Frida是一款动态 instrumentation 工具,可用于在运行时Hook应用程序的函数/方法,需分别在设备端(Frida-Server)和本地端(Frida-Client)配置。

3.1 Frida-Server

Frida-Server需运行在Android设备(模拟器/真机)上,用于接收本地客户端的Hook指令并执行。

Frida-Server官方地址

  • 模拟器的架构通常为x86_64,选择android-x86_64.xz结尾的二进制包;
  • 真机通常为ARM架构,选择android-arm64.xz结尾的二进制包。

本教程使用模拟器演示,因此下载第一个类型的包。

小贴士:若不确定设备架构,可通过在设备的shell中执行命令getprop ro.product.cpu.abi查看,避免下载错误版本。

3.2 Frida-Client

本地客户端用于编写Hook脚本、编译脚本并将其注入到设备中的目标应用,需依赖Python和Node.js环境。

  1. Python环境:用于编写连接设备、执行注入操作的脚本(如后续的run.py)。
    官方下载地址
    安装完成后,通过以下命令安装Frida客户端工具:

    pip install frida-tools
    
  2. Node.js环境:用于编译Frida的JavaScript Hook脚本(依赖frida-compile等工具)。
    官方下载,选择Windows版本安装。

4 项目环境

为便于管理Hook脚本和执行代码,建议按以下结构搭建本地项目:

  1. 新建项目目录(例如命名为Frida),进入目录后执行后续操作;
  2. 新建js子目录,专门存放JavaScript Hook脚本,并在其中创建hook.js(用于编写Hook逻辑);
  3. 新建run.py文件(用于连接设备、加载并注入编译后的Hook脚本)。

初始目录结构如下:

- Frida- js- hook.js- run.py

安装项目依赖

Frida 17+版本对脚本编译和加载有新的依赖要求,需通过npm安装以下工具(网络不佳时可先切换淘宝镜像加速下载):

# 临时设置淘宝镜像(加速依赖下载)
npm config set registry https://registry.npmmirror.com/# 用于与Java层交互的桥接模块
npm install frida-java-bridge --save-dev
# 用于将Hook脚本编译为Frida可识别格式的工具
npm install frida-compile --save-dev
# 提供Frida相关API的类型定义(方便开发时IDE提示)
npm install @types/frida-gum --save-dev

安装完成后,项目目录会新增依赖相关文件,结构如下:

- Frida- js- hook.js- node_modules  # 依赖包目录- package.json  # 项目配置文件- package-lock.json  # 依赖版本锁定文件- run.py

配置package.json

修改package.json文件,配置脚本编译相关命令,方便开发时自动处理脚本更新:

{"private": true,  // 标记为私有项目,禁止npm publish发布"main": "js/hook.js",  // 项目入口文件(源Hook脚本路径)"scripts": {"build": "frida-compile js/hook.js -o js/compiled_hook.js",  // 单次编译:将hook.js编译为compiled_hook.js"watch": "frida-compile js/hook.js -o js/compiled_hook.js -w",  // 实时编译:修改hook.js后自动重新编译"prepare": "npm run build"  // 预处理命令,执行前自动触发build},"devDependencies": {  // 开发依赖(已通过npm install安装)"@types/frida-gum": "^19.0.1","frida-compile": "^19.0.4","frida-java-bridge": "^7.0.10"}
}

后续开发中,只需专注于编写hook.js(Hook逻辑)和run.py(注入逻辑),通过npm run watch启动实时编译后,修改hook.js会自动生成compiled_hook.js,最终通过运行run.py将编译后的脚本注入到目标应用中。

5 总结

本章节完成了基于Frida的Android Hook环境搭建,核心步骤包括:

  1. 安装模拟器(提供调试环境);
  2. 配置Android Studio及SDK(获取ADB通信工具);
  3. 部署Frida-Server(设备端接收Hook指令)和Frida-Client(本地编写/编译脚本);
  4. 搭建项目结构并配置依赖(规范化管理脚本和编译流程)。

通过以上步骤,已为后续的Hook脚本开发、注入测试奠定了基础,各组件协同工作可实现对Android应用的动态调试与函数Hook。

http://www.dtcms.com/a/580917.html

相关文章:

  • 【2025 CVPR】EmoEdit: Evoking Emotions through Image Manipulation
  • 如何创建网站内容网站名称不能涉及
  • 编写微服务api
  • Flutter Transform.rotate 与动画控制器 实现旋转动画
  • Flutter进行命令打包各版本程序(2025.11)
  • 【基于 WangEditor v5 + Vue2 封装 CSDN 风格富文本组件】
  • 网站建设的重要性意义徐州建站公司模板
  • Scrapy源码剖析:下载器中间件是如何工作的?
  • vi 编辑器命令大全
  • AI 预测 + 物联网融合:档案馆温湿度监控系统发展新趋势
  • Vue JSON结构编辑器组件设计与实现解析
  • 14_FastMCP 2.x 中文文档之FastMCP高级功能:MCP中间件详解
  • 软考中级软件设计师(下午题)--- UML建模
  • 机械臂时间最优规划
  • 【LeetCode刷题】两数之和
  • 10 月热搜精选
  • 郑州商城网站开发摄影网站源码 国外
  • Docker 加载镜像时报 no space left on device 的彻底解决方案
  • 5、prometheus标签
  • python+django/flask基于机器学习的就业岗位推荐系统
  • Mysql作业5
  • 为什么Vue 3需要ref函数?它的响应式原理与正确用法是什么?
  • STM32外设学习--TIM定时器--输入捕获---测频方法(代码编写)
  • 如何设置JVM参数避开直接内存溢出的坑?
  • (七)嵌入式面试题收集:8道
  • AI搜索营销破局:光引GEO多平台适配与实时优化引擎开发详解
  • 【有源码】基于Hadoop+Spark的起点小说网大数据可视化分析系统-基于Python大数据生态的网络文学数据挖掘与可视化系统
  • Windows10 wsl2 ubuntu22.04 docker安装
  • 使用docker-compose部署应用保姆级教程
  • 【Linux工具链】从跨平台适配到一键部署:yum多架构支持+Vim远程编辑+gcc交叉编译,解决多场景开发效率瓶颈