zoukankan      html  css  js  c++  java
  • OkHttpLogger-Frida抓包

    自己操纵的注意点:

      1.不能有xposed环境
    
      2.okhttpfind.dex要换成重新打包的,去仓库大issue能找到

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

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

    本菜鸡学习Frida的练手项目,欢迎大家star,也求大佬们指点!

    使用说明

    首先将 okhttpfind.dex 拷贝到 /mnt/sdcard/ 目录下,然后给目标App授予存储权限。

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

    接下来使用okhttp的所有请求将被拦截并打印出来。

    扩展函数:

    • history() 会打印出所有的被抓到的请求信息
    • resend(index) 重新发送请求 例子: resend(0) 重新发送第一个请求

    如果项目被混淆,那么可以使用okhttp_find.js打印出okhttp被混淆后的关键函数名称,然后替换已声明的内容即可。

    例:frida -U com.example.demo -l okhttp_find.js

    备注 :

    okhtpfind.dex 内包含了 更改了包名的okio以及Gson,以及Java写的寻找okhttp特征的代码。

    原理:

    由于所有使用的okhttp框架的App发出的请求都是通过RealCall.java发出的,那么我们可以hook此类拿到requestresponse,
    也可以缓存下来每一个请求的call对象,进行再次请求,所以选择了此处进行hook。

    抓取打印的样例

    一次性请求太多会出现打印错乱现象,由于自己太菜,暂时没有解决这个问题,希望求得大佬指点,万分感谢!!!

    ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    | 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:
    |   Base64[........]//省略了,太长了
    |
    |--> 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
    └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    
    例子2
    ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    | URL: http://****/searchByKeywork
    |
    | Method: POST
    |                                                                                                                    
    | Headers:
    |   ┌─Content-Type: application/x-www-form-urlencoded
    |   └─Content-Length: 20
    |
    | Body:
    |   userId=*****&keyword=run
    |
    |--> END 
    |
    | URL: http://****/searchByKeywork
    |
    | Status Code: 200 / 
    |
    | Headers:
    |   ┌─Content-Type: application/json;charset=UTF-8
    |   ┌─Transfer-Encoding: chunked
    |   └─Date: Sat, 29 Aug 2020 10:18:50 GMT
    | 
    | Body:
    |   {"code":1000,"message":"成功","result":[{"id":"jqjcRQFO2","name":"RUN","remark":"","shareKey":"dRbkPjn
    |   J2sjVJTP0G","cover":null,"list":null,"index":0,"note":"更新至20200123期"}]}
    | 
    |<-- END HTTP
    └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    

    转自:https://blog.csdn.net/siyujiework/article/details/108297912

  • 相关阅读:
    Centos7创建用户su登录后显示为 bash-4.1$
    winserver 搭建 Citrix License 许可服务器
    Centos7扩展存储空间
    CentOS7配置crate集群
    CentOS7安装cratedb
    初探Vue
    浅谈web攻防
    响应式布局
    JavaScript正则表达式,你真的知道?
    15个关于Chrome的开发必备小技巧[译]
  • 原文地址:https://www.cnblogs.com/tjp40922/p/15388274.html
Copyright © 2011-2022 走看看