type
status
date
slug
summary
tags
category
icon
password
0、扫盲
frida是什么
一个基于
python + JavaScript
的hook框架能同时操作java层和native层
什么是hook?
简单来说,Hook(钩子)是一种特殊的技术,用于拦截和修改程序的行为
它可以在程序执行某个函数或方法时,插入自定义的逻辑,比如记录日志、修改参数、甚至阻止某些操作
Hook 的核心思想是“劫持”程序的正常流程,让它先执行我们的代码,再决定是否继续执行原来的逻辑
frida能做什么?
- 拦截并展示程序运行时行为
- 程序在运行时,会调用哪些 API?
- 程序在运行时,操作了哪些文件?
- 程序在运行时,某个函数的参数和返回值是什么?
- 修改程序运行时行为
- 修改程序在运行时,某个函数的参数和返回值
- 修改程序在运行时,某个函数的执行流程
- 修改程序在运行时,某个函数的执行结果
- 主动调用程序
- 主动调用程序的某个函数
- 主动调用程序的某个方法
frida架构


1、Frida配置
client端
server端
在github上下载对应版本的frida server即可,放入/data/local/tmp目录,给最高权限
2、adb妙用
1)基本命令
2)权限命令
3)建立连接
4)文件操作
5)系统操作指令
6)USB充电指令
3、Frida妙用
1. 操作模式
操作模式 | 描述 | 优点 | 主要用途 |
CLI(命令行)模式 | 通过命令行直接将JavaScript脚本注入进程中,对进程进行操作 | 便于直接注入和操作 | 在较小规模的操作或者需求比较简单的场景中使用 |
RPC模式 | 使用Python进行JavaScript脚本的注入工作,实际对进程进行操作的还是JavaScript脚本,可以通过RPC传输给Python脚本来进行复杂数据的处理 | 在对复杂数据的处理上可以通过RPC传输给Python脚本来进行,有利于减少被注入进程的性能损耗 | 在大规模调用中更加普遍,特别是对于复杂数据处理的需求 |
2. 注入模式与启动命令
注入模式 | 描述 | 命令或参数 | 优点 | 主要用途 |
Spawn模式 | 将启动App的权利交由Frida来控制,即使目标App已经启动,在使用Frida注入程序时还是会重新启动App | 在CLI模式中,Frida通过加上 -f 参数指定包名以spawn模式操作App | 适合于需要在App启动时即进行注入的场景,可以在App启动时即捕获其行为 | 当需要监控App从启动开始的所有行为时使用 |
Attach模式 | 在目标App已经启动的情况下,Frida通过ptrace注入程序从而执行Hook的操作 | 在CLI模式中,如果不添加 -f 参数,则默认会通过attach模式注入App | 适合于已经运行的App,不会重新启动App,对用户体验影响较小 | 在App已经启动,或者我们只关心特定时刻或特定功能的行为时使用 |
- Spawn模式
- attach模式 :
注入命令符号解释
3. frida使用
端口转发
frida server 默认端口:27042
基础用法
- 作者:Sh4d0w
- 链接:https://sh4d0w.blog//article/1d150fad-5ffd-8022-92f7-c99681b50c8e
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。