目录

  • 前言
  • 安装frida
  • 查看连接的adb设备
  • 安装frida-server
  • 安装OkHttpLogger-Frida
  • 转发模拟器tcp端口
  • 启动frida-server
  • OkHttpLogger-Frida 使用


前言

Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。
frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。
OkHttpLogger-Frida是针对Android端使用okhttp框架的抓包。

安装frida

pip install frida
pip install frida-tools

#如果安装慢,可以用下面清华源安装
pip install frida -i https://pypi.mirrors.ustc.edu.cn/simple/ 
pip install frida-tools -i https://pypi.mirrors.ustc.edu.cn/simple/

查看连接的adb设备

打开夜神模拟器,在在模拟器跟目录打开cmd窗口输入以下指令,查看设备是否连接成功。

.\nox_adb.exe devices

frida ios手机 frida android_python

安装frida-server

进入虚拟机查看模拟器cpu类型

.\nox_adb.exe shell
getprop ro.product.cpu.abi

frida ios手机 frida android_frida ios手机_02


我的是x86,选择x86的frida-server安装包

frida-server下载地址:https://github.com/frida/frida/releases 下载后解压文件,然后推送到模拟器上的/data/local/tmp目录

.\nox_adb.exe push frida-server-15.1.14-android-x86 /data/local/tmp/frida-server

安装OkHttpLogger-Frida

拉取OkHttpLogger-Frida https://github.com/siyujie/OkHttpLogger-Frida

git clone https://github.com/siyujie/OkHttpLogger-Frida.git

OkHttpLogger-Frida目录下面的okhttpfind.dex也推送到/data/local/tmp/目录下。

.\nox_adb.exe push okhttpfind.dex /data/local/tmp/

转发模拟器tcp端口

.\nox_adb.exe forward tcp:27043 tcp:27043 
.\nox_adb.exe forward tcp:27042 tcp:27042

启动frida-server

然后进入虚拟机启动frida-server

.\nox_adb.exe shell

#frida-server所在目录
cd /data/local/tmp/

#赋予权限
chmod 777 frida-server

#启动运行
./frida-server

重新打开一个cmd窗口运行frida-ps -U,查看是否正常运行。

#查看当前设备进程
 frida-ps -U

显示已下信息说明运行正常

frida ios手机 frida android_frida ios手机_03

OkHttpLogger-Frida 使用

① 执行命令启动frida -U -l okhttp_poker.js -f com.example.demo --no-pause可追加 -o [output filepath]保存到文件

② 调用函数开始执行

  • find() 要等完全启动并执行过网络请求后再进行调用
  • hold() 要等完全启动再进行调用
  • history() & resend() 只有可以重新发送的请求

函数:

find()                                         检查是否使用了Okhttp & 是否可能被混淆 & 寻找okhttp3关键类及函数	
  switchLoader(\"okhttp3.OkHttpClient\")         参数:静态分析到的okhttpclient类名
  hold()                                         开启HOOK拦截
  history()                                      打印可重新发送的请求
  resend(index)                                  重新发送请求

例子:

frida -U com.example.demo -l okhttp_poker.js

总结:
有些app如果没走okhttp协议就抓不到。


  • 📢博客主页:
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 陌北v1 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨