Frida android抓包

目录

      • 前言
      • 安装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-server

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

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

在这里插入图片描述
我的是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 android抓包_第1张图片

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协议就抓不到。


创作不易,求关注,点赞,收藏,谢谢~

你可能感兴趣的:(python,frida)