frida-server是什么

frida-server 是 Frida 框架中的核心服务端组件,用于在目标设备上提供“动态插桩(Dynamic Instrumentation)”能力。

运行在:

  • Android
  • iOS
  • Linux
  • macOS
  • Windows

上的一个 Agent/Daemon它允许外部客户端:

  • 注入代码
  • Hook函数
  • 修改参数
  • 修改返回值
  • dump内存
  • 绕过安全检测
  • 动态分析运行时行为

而不需要修改原始程序二进制。


1.Frida整体架构

graph TD

A[frida-tools 客户端] --> B[frida-core]
B --> C[USB/TCP通信]
C --> D[frida-server]
D --> E[目标进程]
E --> F[Java Hook]
E --> G[Native Hook]
E --> H[内存读写]
E --> I[SSL Pinning Bypass]

2.Frida组成

Frida主要由几部分构成:

组件 作用
frida-tools Python命令行工具
frida-core 核心通信库
frida-server 目标设备上的服务端
frida-gadget 无Root注入方案
Gum Engine 动态插桩引擎
JavaScript Runtime Hook脚本执行环境

3.frida-server工作原理

3.1 本质

frida-server 本质是:

  • 一个运行在目标设备上的 RPC Server
  • 提供进程注入能力
  • 提供 Hook API
  • 提供 JS Runtime

客户端通过 USB/TCP 与其通信。


3.2 Hook流程

sequenceDiagram

participant PC
participant frida-server
participant TargetApp

PC->>frida-server: attach/spawn
frida-server->>TargetApp: 注入Agent
TargetApp->>TargetApp: 加载JS Runtime
PC->>TargetApp: 下发Hook脚本
TargetApp->>PC: 返回Hook结果

4.支持的平台

平台 支持情况
Android 最常用
iOS 越狱环境常见
Windows 支持
Linux 支持
macOS 支持
QNX 支持

Frida官方明确支持跨平台动态插桩。


5.Android部署流程

5.1 查看CPU架构

1
adb shell getprop ro.product.cpu.abilist

常见:

架构 frida-server版本
arm64-v8a android-arm64
armeabi-v7a android-arm
x86_64 android-x86_64

5.2 下载

官方发布页:

Frida Releases


5.3 推送

1
adb push frida-server /data/local/tmp/

5.4 授权

1
adb shell chmod 755 /data/local/tmp/frida-server

5.5 启动

1
adb shell su -c /data/local/tmp/frida-server

或者:

1
2
3
adb shell
su
/data/local/tmp/frida-server &

官方文档也使用类似方式。


6.frida-server常见命令及端口

查看设备

1
frida-ls-devices

查看进程

1
frida-ps -U

附加进程

1
frida -U -n com.demo.app

Spawn模式

1
frida -U -f com.demo.app

加载JS

1
frida -U -f com.demo.app -l hook.js

默认监听端口

1
2
3
4
netstat -anp | grep frida

27042
27043

7.frida-server检测与对抗

很多App会主动检测Frida。

常见检测:

检测方式 原理
端口检测 27042
进程名检测 frida-server
maps检测 /proc/self/maps
ptrace检测 调试状态
inline hook检测 指令校验
thread检测 GumJS线程

Frida Handbook 中专门提到:

  • /data/local/tmp/frida-server
  • /proc/self/maps

等典型检测点。

绕过检测方案

改名

1
mv frida-server fs64

换路径

1
/dev/fs64

修改端口

1
frida-server -l 0.0.0.0:6666

8.frida-server典型用途

场景 用途
Android逆向 Hook Java/native
APP安全测试 SSL Pinning绕过
风控分析 参数还原
游戏修改 内存修改
恶意代码分析 动态行为分析
漏洞研究 Runtime fuzz
API分析 请求签名逆向