Frida android抓包

前言

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

显示已下信息说明运行正常
在这里插入图片描述

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


  • 📢博客主页:https://blog.csdn.net/qq233325332
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 陌北v1 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
使用Frida配合Charles抓包主要是为了实时分析和修改网络请求。Frida可以让你在应用运行过程中动态注入代码,而Charles则是一个流行的数据包捕获和分析工具。以下是简单步骤: 1. **安装所需工具**:首先,确保你已经安装了Frida(参考上述安装过程),以及Charles Proxy(可以从http://www.charlesproxy.com/ 下载)。 2. **启动Charles**:打开Charles,设置好代理(通常是localhost:8888),并启用“Proxy”功能。 3. **监听目标应用**:启动需要分析的应用,并让Charles成为其网络请求的代理。 4. **编写Frida脚本**:创建一个新的Frida script,找到对应于发出网络请求的代码段。你可以使用`intercept`函数来捕获特定方法或函数(如NSURLSessionTask或HttpClient等)。示例代码可能会类似这样: ```javascript const originalFunc = Interceptor.attach('libobjc.dylib!_OBJC_CLASS_$_NSURLSessionTask', { onEnter: function(args) { // 在这里添加你的抓包和修改逻辑 Charles.send({ request: { url: args.toString() } }); }, onLeave: function(retval) { /* 网络请求完成后执行的操作 */ } }); ``` 5. **加载Frida脚本**:将此脚本保存后,在终端中运行`frida -U your.app.path -l your_script.js`,替换`your.app.path`为你的目标应用路径,`your_script.js`为你的脚本文件名。 6. **观察抓包结果**:现在你应该能看到来自应用的所有网络请求及其详细信息,在Charles的面板中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌北v1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值