Frida实现的Android端App抓包小工具 okhttp_poker

OkHttpLogger-Frida
Frida 实现拦截okhttp的脚本,只针对Android端使用okhttp框架发送http请求的拦截,用途不大,仅学习交流使用!

github 链接: https://github.com/siyujie/OkHttpLogger-Frida

使用说明
① 首先将 okhttpfind.dex 拷贝到 /data/local/tmp/ 目录下。 然后给目标App授予存储权限。

执行命令启动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) 重新发送请求

原理:
由于所有使用的okhttp框架的App发出的请求都是通过RealCall.java发出的,那么我们可以hook此类拿到request和response, 也可以缓存下来每一个请求的call对象,进行再次请求,所以选择了此处进行hook。 find前新增check,根据特征类寻找是否使用了okhttp3库,如果没有特征类,则说明没有使用okhttp; 找到特征类,说明使用了okhttp的库,并打印出是否被混淆。

抓取结果实例:
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
| URL: https://lng.**.com/api/collect
|
| Method: POST
|
| Headers:
| ┌─Content-Type: application/octet-stream; charset=utf-8
| ┌─Content-Length: 3971
| └─User-Agent: Dalvik/2.1.0 (Linux; U; Android 8.1.0; AOSP on msm8996 Build/OPM1.171019.011) Resolution/1080
1920 Version/6.59.0 Build/6590119 Device/(google;AOSP on msm8996) discover/6.59.0
|
| Body:
| hex[…]//省略了,太长了
|
|–> END (binary body omitted -> isPlaintext)
|
| URL: https://lng.***.com/api/collect
|
| Status Code: 200 /
|
| Headers:
| ┌─date: Sat, 29 Aug 2020 10:09:28 GMT
| ┌─content-type: text/json; charset=utf-8
| ┌─content-length: 41
| ┌─access-control-allow-origin: *
| ┌─access-control-allow-credentials: true
| ┌─access-control-allow-methods: GET,POST,OPTIONS,HEAD
| └─access-control-allow-headers: Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Client-Build,X-Client-Platform,X-Client-Version,X-Mx-ReqToken,X-Requested-With,X-Sign
|
| Body:
| {“code”:0,“msg”:“Success”,“success”:true}
|
|<-- END HTTP
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值