首页 > 其他分享 >android开发通过wireshark实现flutter应用抓包

android开发通过wireshark实现flutter应用抓包

时间:2024-08-21 14:49:06浏览次数:10  
标签:dio http Charles android flutter 抓包 wireshark

android开发通过wireshark实现flutter应用抓包

1. 为什么要使用wireshark抓包

  • 1.有了上一篇Charles的抓包文章,为什么还写这篇抓包文章呢?单独论http请求抓包的话Charles比wireshark好用

  • 2.这是因为flutter应用使用的不是系统的证书,而是使用flutter框架自己的证书,这就导致了Charles即使配置了系统证书抓包不了,所以只能使用wireshark通过网络代理实现抓包

  • 3.wireshark抓包工具下载地址:https://www.wireshark.org/download.html

2. flutter应用实现抓包的方法

1. 方法一 (有源代码)

  • 1.如果是自己的应用,也就是有源代码,这个方法一就是就好处理的

  • 2.一般flutter应用的网络请求都是通过dio框架实现的,那就给dio设置代理ip和端口就搞定

  • 3.给dio网络请求添加代理如下:

      import 'package:dio/dio.dart';​
      var dio = Dio();
      (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
        client.findProxy = (uri) { return 'PROXY 192.168.137.1:8888';};  //设置为Charles代理ip,查看方法:Help -> Local IP Address
        client.badCertificateCallback = (X509Certificate cert, String host, int port) => true; //忽略证书
      }; 
    
  • 4.这样就能实现抓包了,连之前说的在手机安装Charles证书都不用,因为flutter应用不走系统代理使用的都不是系统的证书,而且自己的框架内部的。

2. 方法二 (没源代码)

3. 方法三 (没源代码)

  • 1.连Charles工具抓包都无能为力了,还有其他方法吗?有的,就是本文要讲解的使用wireshark通过网络代理实现抓包

  • 2.首先window电脑开启热点,然后让手机连接电脑开启的热点,这样手机访问的网络必然经过这个热点,然后使用wireshark工具抓包这个热点网络的通信数据就可以了

  • 3.window开启热点方法如下

  • 4.安装wireshark工具,然后打开它。安装的时候会提示安装其他插件比如tcpdump,最好尽量都安装上,安装多了不影响。打开wireshark工具后选择window开启的热点,进行追踪抓包

  • 5.通过http过滤器过滤出http请求,也可以通过http && ip.src==192.168.137.12 、 ip.addr==xx等等过滤规则过滤出自己想要的抓包数据

  • http流追踪分析,能具体查看http请求数据和响应数据,使用红色区分,默认红色部分是请求数据,蓝色部分是响应数据

  • 统计http请求数据

  • 其他高级用法自己搜索学习,不过抓包一般就这些使用,wireshark比charles强大,就是抓包使用起来没有charles方便,主要还是看个人习惯吧

标签:dio,http,Charles,android,flutter,抓包,wireshark
From: https://www.cnblogs.com/yongfengnice/p/18371513

相关文章

  • Android系统启动流程概述
    Android手机先开机,init/Zygote/SystemServer,然后启动Framework,然后启动Launcher;【安装APP(PMS),】然后启动APP(AMS)。所有的Android应用进程都是有Zygote进程fork出来的.>Android手机开机流程,init/Zygote/SystemServer##Android手机开机流程: 1.启动电源以及系统启动,当电源按......
  • Android开发 - BluetoothClient 类处理蓝牙全过程连接与数据解析
    BluetoothClient是什么BluetoothClient类通常用于蓝牙应用中,特别是与蓝牙设备进行通信的客户端管理。通常用于在Android应用中进行蓝牙通信。它帮助你处理与蓝牙连接、设备发现、数据传输等等任务BluetoothClient的使用环境连接到蓝牙设备:通过BluetoothClient,你可以......
  • Android开发 - Handler 类处理线程通信与任务调度解析
    什么是Handler类是处理线程间通信和任务调度的一个重要工具,用于在不同的线程之间传递消息和执行任务使用场景线程间通信:在子线程中执行任务后,更新主线程(UI线程)的界面。任务调度:安排在将来某个时间点执行的任务。基本工作原理消息队列:每个线程(包括主线程)都有一个......
  • Android Qcom USB Driver学习(五)
    前面的几篇都有涉及,所以本文学习一下pmicusbcharger都相关的vote机制OVP:OverVoltageProtection过压保护USB_IN:Inputcurrentlimit一般仅支持USB_IN即VBUS在输入(有些能支持DC_IN),APSD:autonomouspowersourcedetection运行于BC1.2SDP/CDP的检测完成......
  • android开发将charles证书安装到安卓系统根目录实现https抓包
    android开发将charles证书安装到安卓系统根目录实现https抓包1.安装charles,然后先将charles证书到电脑端下载地址:https://www.charlesproxy.com/安装证书到电脑端先:点击Help->SSLProxying->InstallCharlesRootCertificate->安装证书...->本地计算机->下一步......
  • Android10.0 人脸解锁流程分析
    人脸解锁概述人脸解锁即用户通过注视设备的正面方便地解锁手机或平板。Android10为支持人脸解锁的设备在人脸认证期间添加了一个新的可以安全处理相机帧、保持隐私与安全的人脸认证栈的支持,也为安全合规地启用集成交易的应用(网上银行或其他服务)提供了一种容易实现的方式......
  • Android开发 - BleConnectOptions 类设置蓝牙连接选项解析
    BleConnectOptions是什么BleConnectOptions类是与蓝牙设备连接相关的一个配置类。它主要用于设置蓝牙连接的选项,确保与蓝牙设备的连接能够根据需求进行调整和优化。常用于配置蓝牙设备的连接参数,例如连接超时时间、是否自动连接等。这些配置可以帮助你更好地控制蓝牙连接过程,......
  • [Android 逆向整理笔记] Frida
    妈的终于考过科目三了......
  • Android实战:实现注册界面
    目录前言布局图实现过程1.导入图片2.创建分割线样式3.创建文本样式4.创建输入框样式5.XML布局文件测试6.实现注册功能前言在前面,我们已经学习了一些常见的界面布局和界面控件,那么本篇我们就来结合前面所学的知识,来实现一个注册界面。布局图我们最终要实现的界......
  • Android T don't abort background activity starts
    log:2024-08-2015:45:12.457581-1128ActivityTaskManagersystem_processISTARTu0{act=android.intent.action.MAINcat=[android.intent.category.LAUNCHER]flg=0x10000000pkg=acr.browser.lightningcmp=acr.browser.lightning/.Ma......