Frida 是什么
我觉得官网已经说得很清楚了. 简单的说就是一款动态代码检测工具, 可用于各种系统, 这里的主要用途是动态检测 Android 代码, 配合 Windows 系统环境使用.
Frida 环境的搭建主要分为两个部分, 一部分是运行在系统上的交互工具 frida - CLI, 另一部分是运行在 Android 机器上的注入工具 frida - server. 下面 frida-server 我简称为 Android 端, frida CLI 我简称为 Windows 端. 把这两端的环境都部署好后, 就能通过 Windows 向 Android 发送指令了.
分类如下:
- frida - server (Android 端)
- frida - CLI (Windows 端)
Android 端安装步骤
根据 CPU 架构选择 frida-server
Android 手机主要是安装一个 frida-server, 安装前, 但是需要根据不同的 CPU 架构去选择 frida-server , 现在 Android 主流的 CPU 架构分类为 x86 和 ARM 架构的, 那么怎么区分自己 Android 手机的 CPU 架构呢? 跟着我敲一行命令即可:
adb shell getprop ro.product.CPU.abi
这样可以直接获取 CPU 处理器位数:
- armeabi-v7a -------(32 位 ARM 设备)
- arm64-v8a -------(64 位 ARM 设备)
下载地址: https://github.com/frida/frida/releases
地址里面比较多产品, 因为 Frida 比较牛逼, 支持的平台众多, 你就搜索
frida-server-XXX.XXX.XXX-Android-x86_64.xz
就好.
我这个是 arm64 架构的, 下载好了之后解压, adb push ~ ~ 到 Android 手机就行了.
Android 安装 frida-server
- adb push frida-server /data/local/tmp # adb push 参数 1 参数 2
- adb shell
- su
- cd data/local/tmp
- chmod 777 frida-server
- ls -all # 验证是否 777
- -rwxrwxrwx shell shell 21248332 2019-01-03 17:29 frida-server-12.2.27-Android-ARM
- ./frida-server # 必须运行
机器需要 root 权限, 因为 Frida 要求的权限比较大. 注意尽量使用真机测试, 因为一些虚拟机 CPU 使用混合模式架构, 这样就会导致 Frida 报错无法运行, 新手尽量使用真机来避免这个问题, 如果实在没有这个条件, 那么挑选虚拟机的时候尽量注意一下这个问题即可.
如果程序一直处于运行状态 (如下图), 不返回 shell 就是正常的.
Windows 端安装步骤
pip 安装组件
- pip install frida
- pip install frida-tools
- pip list # 验证一下 pip 是否安装成功
Windows 端验证 frida-server 是否成功
- # 设置端口转发
- adb forward tcp:27042 tcp:27042
- adb forward tcp:27043 tcp:27043
- # 查看进程
- frida-ps -R
- # 或
- frida-ps -U
能看到打印出来的 PID 和进程, 说明 Android,Windows 端都已经安装好了. 去探索吧, 少年!
参考
https://frida.re/docs/home/
来源: https://www.cnblogs.com/mysticbinary/p/12012935.html