<table><tr><td bgcolor=orange>本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!</td></tr></table>
****
## Frida使用文档(一)安装、启动、运行、关闭
### 操作环境
- win10
- Google nexus5x
- Python3.9
- frida==14.2.17
- frida-tools==9.2.4
### 安装Frida
#### PC安装frida和frida-tools
注意frida和python frida-tools的版本匹配,[Frida与Frida-tools对应关系](<https://github.com/frida/frida/releases>)
```
pip install frida==14.2.17
pip install frida-tools==9.2.4
```
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/bf4fea6fe110408faeb3398ba0703076.png)
#### 手机安装frida-server
在 官方[github](https://github.com/frida/frida/releases)页面的`release`标签里,找到对应版本的frida-server`,注意要匹配系统和架构,比如`arm`和`arm64就不能搞错
- 查看手机CPU 架构类型
```
PS C:\Users\Administrator> adb devices
List of devices attached
00eda37121888c2c device
PS C:\Users\Administrator> adb shell
bullhead:/ $ getprop ro.product.cpu.abi
arm64-v8a
```
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/12a8af411a9c4fa886d7c1776f0a364e.png)
- 根据frida版本和手机CPU版本下载对应的frida-server
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/dcbccf7c5227402b8761f375cf524f07.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ouJ54Gv55qE5bCP5omL,size_20,color_FFFFFF,t_70,g_se,x_16)
下载完成后进行解压,获得`linux`原生的可执行文件,我们将它重命名为`frida-server`
- 将frida-server安装至手机
使用`adb`命令将其推送到手机上去
```
$ adb push frida-server /data/local/tmp/
```
然后使用`adb shell`命令进入到手机中去,执行以下命令:
```
$ adb shell
bullhead:/ $ su
bullhead:/ # whoami
root
bullhead:/ # cd /data/local/tmp/
bullhead:/data/local/tmp # chmod 755 /data/local/tmp/frida-server
bullhead:/data/local/tmp # ./frida-server &
[1] 6669
```
`frida-server`运行成功。
### 运行Frida
#### 启动frida-server服务
电脑新开一个shell,执行如下命令
```
PS C:\Users\Administrator> adb shell
bullhead:/ $ su
bullhead:/ # cd /data/lo
local/ lost+found/
bullhead:/ # cd /data/local/tmp/
bullhead:/data/local/tmp # ./frida-server &
[1] 8610
bullhead:/data/local/tmp #
```
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/12d161d88ab8476b98d118f57cd9a82c.png)
此时在电脑上新开一个`shell`,运行`frida-ps -U`命令,即可显示手机中正在运行的进程。
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/207e65a3c6cb4edaa97abaac7d511630.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ouJ54Gv55qE5bCP5omL,size_20,color_FFFFFF,t_70,g_se,x_16)
frida-server服务端启动成功!
#### 关闭frida-server服务
查看frida进程
```
ps | grep frida
```
杀死进程
```
kill -9 进程id
```
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/43fd8ab053b8422db1539b911aa421c9.png)
### 常用命令
#### 端口转发
```
adb forward tcp:27042 tcp:27042
```
### 常见问题
#### Frida hook某些App,明明包名写对了,却找不到进程
```
#查看进程中的信息
#process = frida.get_usb_device().enumerate_processes()
#print(process)
1.新开一个shell输入命令:
adb shell am monitor
2.启动需要获取包名的应用
```
![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/c9613a877fe34c3ba952ae0ad976b3f4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ouJ54Gv55qE5bCP5omL,size_20,color_FFFFFF,t_70,g_se,x_16)
****
<table><tr><td bgcolor=orange>本文仅供学习交流使用,如侵立删!</td></tr></table>
****