注意:这个适合安卓7、8。推荐用低版本的安卓手机来逆向,省很多事!!
一、安装Python
建议安装Python3.7.4,以下为windows 64位下载地址。
https://www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe
二、安装Frida
建议选择Frida 12.8.0版本,非常的稳定!相信我,别下载最新版,要不然早晚还得回来重新下~
pip install frida==12.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
Q1:出现pip版本太低提示?
You are using pip version 19.0.3,, however version 23.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
A1:
python -m pip install --upgrade pip --index-url http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
Q2:卡在Running setup.py install for frida … 不动?
A2:下载对应版本的egg文件,egg文件列表,可自行查找。python3.7.4对应的是[frida-12.8.0-py3.7-win-amd64.egg 百度云点击下载]。
将egg文件放在`D:\Python\Lib\site-packages`下(根据自己的Python安装目录)。在当前目录cmd,执行`easy_install frida-12.8.0-py3.7-win-amd64.egg`。
easy_install frida-12.8.0-py3.7-win-amd64.egg
执行查看frida是否安装成功
python -c "import frida; print(frida.__version__)"
12.8.0 //返回这个就已经安装成功了
三、安装Frida-tools
pip install frida-tools==5.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
四、安装Objection
pip install objection==1.8.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/
五、安装adb工具
该工具用于在PC端用命令行对安卓手机或模拟器进行调试。记得添加环境变量。
adb工具:百度云下载
六、安装frida-server端到手机或模拟器
以下用逍遥模拟器演示Frida-server端。
打开一个模拟器,通过adb可查看该模拟器设备,查看连接,并查看模拟器设备型号。
PS D:\> adb devices
List of devices attached
PS D:\> adb connect 127.0.0.1:21503
connected to 127.0.0.1:21503
PS D:\> adb devices
List of devices attached
127.0.0.1:21503 device
PS D:\> adb shell getprop ro.product.cpu.abi
x86_64
在官网找到对应frida版本、对应手机型号的frida-server下载,官网地址。
本次演示对应的frida-server版本为frida-server-12.8.0-android-x86_64.xz
,下载地址为百度云下载。
如果是连接安卓真机(需要root),可能是arm64-v8a,百度云下载。
将解压之后的文件(不是文件夹)push到设备中,指定到 /data/local/tmp 路径下重命名为 frida-server。
PS D:\> adb push C:\Users\xxx\Desktop\frida-server-12.8.0-android-x86_64 /data/local/tmp/frida-server
C:\Users\xxx\Desktop\frida-server-12.8.0-android-x86...le pushed, 0 skipped. 19.4 MB/s (99542760 bytes in 4.882s)
命令行运行android设备中的frida-server。
PS D:\> adb shell // 进入手机
VOG-AL00:/ # su // 确定手机是root权限
VOG-AL00:/ # cd /data/local/tmp // 进入到tmp目录下
VOG-AL00:/data/local/tmp # chmod 777 frida-server // 给执行权限,可读可写可执行
VOG-AL00:/data/local/tmp # ./frida-server //正式启动frida-server
提示:执行完毕后为运行状态。这个shell不能关闭,关闭了frida就停止了。
七、进行端口转发监听
//27042端口用于frida-server通信的默认端口号,不转发的话客户端是连接不上服务端。
PS D:\> adb forward tcp:27042 tcp:27042
27042
PS D:\> adb forward tcp:27043 tcp:27043
27043
使用默认端口非常容易被检测,可以使用非标准端口来启动frida。启动frida-service的时候设置IP和端口,启动命令。
./frida-server -l 127.0.0.1:9999
八、服务端与客户端连接成功
检查是否成功 执行 frida-ps -U
命令成功输出进程列表,如下所示。
PS D:\> frida-ps -U
PID Name
---- ---------------------------------
2364 android.ext.services
2403 android.process.media
1566 audioserver
1567 cameraserver
... ...
九、简单使用
test.py
import frida
rdev = frida.get_remote_device()
front_app = rdev.get_frontmost_application()
print(front_app)
PS E:\学习\python> python .\test.py
Application(identifier="com.android.chrome", name="Chrome", pid=13770, parameters={})
十、Frida实战