type
status
date
slug
summary
tags
category
icon
password

0、扫盲

frida是什么

一个基于python + JavaScript的hook框架
能同时操作java层和native层
什么是hook?
简单来说,Hook(钩子)是一种特殊的技术,用于拦截和修改程序的行为
它可以在程序执行某个函数或方法时,插入自定义的逻辑,比如记录日志、修改参数、甚至阻止某些操作
Hook 的核心思想是“劫持”程序的正常流程,让它先执行我们的代码,再决定是否继续执行原来的逻辑

frida能做什么?

  • 拦截并展示程序运行时行为
    • 程序在运行时,会调用哪些 API?
    • 程序在运行时,操作了哪些文件?
    • 程序在运行时,某个函数的参数和返回值是什么?
  • 修改程序运行时行为
    • 修改程序在运行时,某个函数的参数和返回值
    • 修改程序在运行时,某个函数的执行流程
    • 修改程序在运行时,某个函数的执行结果
  • 主动调用程序
    • 主动调用程序的某个函数
    • 主动调用程序的某个方法

frida架构

notion image
notion image

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

基础用法

 
JNI学习Frida-labs
Loading...
Sh4d0w
Sh4d0w
漫长学习路ing
最新发布
360加固复现学习
2025-6-15
java反射机制
2025-6-14
classLoader机制
2025-6-14
dex文件结构
2025-6-14
APP启动流程
2025-6-14
JNI学习
2025-6-14
公告
Welcome to Sh4dw’s blog!
敬请指导,Q 467194403