经过前两篇
雷电模拟器上使用第一个frida(一)之安装-CSDN博客雷电模拟器上使用第一个frida(二)之su超级权限-CSDN博客
本篇开始记录如何使用frida进行hook。
一、先让手机模拟器端的frida server运行起来
虽然是让手机模拟器端的firda server运行起来,但操作还是在pc端,使用adb来操作。
使用adb连接模拟器,进入frida-server-14.2.18-android-x86_64所在的/data/local/tmp路径,
执行./frida-server-14.2.18-android-x86_64即可。

似乎没有什么反应,其实是服务端已经在运行。运行之后,当前cmd窗口不能关闭。
第一个cmd里的整个命令如下(用于操作手机模拟器):
- cmd
- d:
- cd D:/leidian/LDPlayer4/
- adb.exe kill-server
- adb connect 127.0.0.1:5555 雷电模拟器的默认端口是5555,(逍遥模拟器端口:21503)
- adb devices
- adb.exe kill-server(雷电模拟器很特殊,需要多执行一次kill-server)
- adb devices
-
-
- adb shell
- getprop ro.product.cpu.abi
- su
- cd /data/local/tmp
- ls
- ./frida-server-14.2.18-android-x86_64
二、pc端设置端口转发
再开一个cmd,第二个cmd执行下面命令,实现端口转发:
- d:
- cd D:/leidian/LDPlayer4
- adb forward tcp:27042 tcp:27042
- adb forward tcp:27043 tcp:27043

三、pc端编写python代码(本机环境,win10 64,python3.10.4)
先写一段最简单的代码
- import frida
-
- rdev = frida.get_remote_device()
- front_app = rdev.get_frontmost_application()
- print(front_app)
结果一上来就报错了

参考了frida安装配置教程_安装指定版本frida-CSDN博客

应该是python版本过高的原因。本机python版本为3.10.4。
那么,就按要求再安装一个Python3.8.10的环境。

安装完成后,将python3.exe改为python38.exe,pip3.exe改为pip38.exe。
路径:
cd C:\Users\LC\AppData\Local\Programs\Python\Python38
python38
cd C:\Users\LC\AppData\Local\Programs\Python\Python38\Scripts
pip38.exe

不过pip38.exe -V报错:

参考“Fatal error in launcher: Unable to create process using”解决办法-CSDN博客
- 步骤1:到scripts目录,将原来的pip.exe文件删掉
- 步骤2:cmd窗口执行:python38 -m pip install -U pip
-
- 执行完毕后,会在scripts目录下,重新生成pip pip3 等文件
- (之前的pipxx都不可用)
- 新生成的都是可用的,随便一个改成pip38.exe

在python3.8.10的环境下(路径C:\Users\LC\AppData\Local\Programs\Python\Python38\Scripts)安装frida:
- pip38 install frida==14.2.18
- pip38 install frida-tools==9.2.5
在pycharm里新增python3.8.10编译器


打开项目,运行代码之前选择3.8.10:


完成上述工作后,重新测试frida,成功。

代码:
- import frida
-
- #得到android手机当前最前端Activity所在的进程
- rdev = frida.get_remote_device()
- front_app = rdev.get_frontmost_application()
- print(front_app)
-
- #枚举android手机所有的进程
- rdev = frida.get_remote_device()
- processes = rdev.enumerate_processes()
- for process in processes:
- print (process)
最后,在python3.8.10的C:\Users\LC\AppData\Local\Programs\Python\Python38\Scripts目录中,多出了一些关于frida操作的exe文件,可以在cmd下运行,显示手机模拟器的数据。
