用Wireshark对Android应用的网络流量进行抓包
通过Wireshark、Charles、Burpsuite等工具分析网络流量的过程,又叫做抓包。
为何需要抓包
测试手机应用(如搜狗号码通、搜狗手机浏览器)的功能时,经常遇到与网络交互的场景,这时候我们往往需要通过分析客户端与服务端的网络交互来分析客户端的功能、定位BUG的原因(是来自客户端还是服务端)、解释不正常的客户端表现等等,而通过一般的测试手段并不能直接的分析手机发出的网络请求(主要是现阶段尚没有运行于Android或iOS的网卡分析工具)。
但是在PC或Mac上我们很容易通过不同软件(如本文介绍的Wireshark)来截获网卡的请求来分析,为此,我们可以通过在PC或者Mac上建立一个Wifi热点,然后用手机连接该热点,来通过分析该发射热点网卡的请求分析手机的请求。
如何建立一个Wifi热点
简单的原理和具体方法(Windows下和mac下抓包)如下:
- 首先要在PC/Mac上利用USB网卡建立无线Wi-Fi热点;
- 安装Wireshark抓包工具;
- 用手机连接对应的Wi-Fi;
- 手机端触发相关网络请求;
- 抓包分析;
在Windows下设置虚拟wifi
前提:
- 运行Windows 7系统的PC已经含有一块可以正常联网的网卡在运行;
- 拥有一块USB无线网卡;
- 以管理员身份运行命令提示符:“开始”——在搜索栏输入“cmd”——右键,以“管理员身份运行”;
步骤1:建立虚拟wifi
启用并设定虚拟WiFi网卡
在启动的CMD中运行命令:
netsh wlan set hostednetwork mode=allow ssid=XXX key=XXXXXXXX keyusage=persistent#(可以不输入keyusage)[敲回车]
注意:上边命令“ssid”后XXX为网络名称即要设定的wifi名称,自己随便命名(最好用英文) “Key”后边XXXXXXXX为你要设定的wifi密码(至少8位)。
此命令有两个参数:
mode:是否启用虚拟WiFi网卡,改为disallow则为禁用。例如:只使用mode=disallow可以直接禁用虚拟Wifi网卡。
如果将 keyUsage 指定为永久,将保存安全密钥并在将来再次启动托管网络时使用。否则只有在当前或下一次启动托管网络时使用此密码。停止托管网络后,将从系统中删除临时安全密钥。如果未指定 keyUsage,默认情况下,它是永久性的。
运行netsh wlan set hostednetwork mode=allow ssid=XXX key=XXXXXXXX 命令之后看到成功的提示。
然后再打开“控制面板”—>“网络和共享中心”—>“更改适配器设置”
看看多出的这一项“Microsoft Virtual WiFi Miniport Adapter”。
(虚拟wifi是自己改的名字,原名叫:无线网络连接2)
步骤2:设置Internet连接共享
在“网络连接”窗口中,右键单击已连接到Internet的网络连接(切记不一定是本地连接 ,是你上网的那个连接),选择“属性”→“共享”,勾上“允许其他……连接(N)”并选择“虚拟WiFi”。
确定之后,提供共享的网卡图标旁会出现“共享的”字样,表示“宽带连接”已共享至“虚拟WiFi。
步骤3:开启无线网络
- 继续在命令提示符中运行:netsh wlan start hostednetwork,(当然可以新建一个记事本文件复制:netsh wlan start hostednetwork 然后另存为:启动WIFI热点.bat ,下次开机的时候只需要以“管理员身份运行”就启动了。)
虚拟WiFi的红叉叉消失,WiFi基站已组建好,主机设置完毕。 - 用手机连接该wifi
如果想关闭wifi共享功能也是可以的,不用动电脑的wifi开关这么麻烦,只需要一条命令:netsh wlan stop hostednetwork
(也可以像启动wifi热点那样,建立一个.txt文件,将命令netsh wlan stop hostednetwork复制到文件中,名字改为关闭WIFI热点.bat,以“管理员身份运行”)
在mac上开启wifi热点方法
前提:必须插着网线且能上网;拥有一块USB无线网卡。
步骤1:设置互联网共享
- 点击mac上的右上角的小苹果,选择“系统偏好设置”
- 打开系统偏好设置,后点击“共享”
- 打开共享后,选择互联网共享,右侧共享来源链接选择“以太网”,端口选择“wi-fi”
- 然后勾选上“互联网共享”,同时会弹出提示,选择“启动”
点击完启动,互联网共享被勾选 - 同时可以点击步骤3途中的“编辑”按钮,编辑热点名称,和密码
- 设置成功后,桌面最上方的bar上,wifi图标变为 向上的箭头,这时就可以连接该wifi,使用相应的抓包工具进行抓包了~
- 用手机连接该wifi
步骤2:开启共享无线网络
如何使用Wireshark进行抓包
Wireshark是什么
关于Wireshark的详细介绍可以阅读以下文档:
- 维基百科:http://en.wikipedia.org/wiki/Wireshark
- 官方文档:http://www.wireshark.org/docs/
一句简单的介绍就是,Wireshark是一个广受好评的开源网络包协议分析工具。
下载地址 http://www.wireshark.org/download.html,可以针对自己的操作系统类型(Windows,Mac,Linux),操作系统位数(i386,amd64)来选择合适的下载包。下载完成后安装即可。
使用Wireshark进行抓包
在已经建立并开启Wifi热点的前提下,安装完Wireshark后即可启动该软件。
1、 启动Wireshark后,通过依次点击菜单栏的“Capture”-“Interfaces”(或者直接按下Ctrl+I快捷键),弹出如下界面,可以在该界面选择要监控的网卡。
2、 此处默认显示的是各个网卡的IPv6地址,鼠标单击该IPv6地址可切换显示其IPv4地址。单从显示出来Description和IP地址有时候并不能判断哪一块网卡是需要监控的。可以通过以下方法是判断。
i. 通过按下“Windows徽标键”+R,输入cmd来启动DOS命令行;
ii. 输入以下命令,ipconfig /all,来查看系统中各网卡的信息,需要的信息如图中黄色部分显示
iii. 选择建立好的Wifi热点之后,点击Start即可开始抓包。
3、 wireshark抓包主界面
一个具体的抓包监控主界面如下图所示。
4、 选中你所要查看的请求记录,右键选择“Follow TCP Stream”查看具体内容
至此抓包成功。
常用的工具栏工具
常用的工具栏工具有两个,一个是停止抓包,一个是重新开始抓包(“清屏”)。
过滤器
过滤器的作用是从众多的网络请求中过滤出符合我们特定需求请求的工具。
由于Wireshark会记录每一条网络请求,不论是HTTP协议的每一次握手,还是FTP的每一次请求,不论是TCP,还是UDP都会被记录,这样的好处是可以记录每一条记录而不会有“漏网之鱼”,不好的地方在于,在大量的请求中找到我们需要的那一条就不容易了。
因此就有了过滤器工具。
过滤器的使用是:编写过滤器规则——应用过滤器规则。过滤器规则的应用可以通过过滤器栏的Apply来应用。如图
几个常用的简单过滤器规则
- 过滤出所有的HTTP包请求
在filter的输入框中输入“http”(不含引号),然后点击Apply - 过滤出所有包含php关键词的请求
在filter的输入框中输入“http.request.full_uri contains php”(不含引号),然后点击Apply - 过滤出所有含有特定域名的请求
在filter的输入框中输入“http.request.full_uri contains haoma.sogou.com”(不含引号,其中的haoma.sogou.com代指的是特定的域名),然后点击Apply - 过滤出所有的GET方法请求
在filter的输入框中输入“http.request.method==”GET””(不含引号),然后点击Apply
用Wireshark对Android应用的网络流量进行抓包的更多相关文章
- 利用Fiddler对Android模拟器网络请求进行抓包
安装使用Fiddler 下载安装Fiddler的方法这里就略过了,一路Next就行了.装好之后运行软件,正常情况这个时候我们已经可以对电脑的网络请求进行抓包了.Fiddler默认的代理地址是127.0 ...
- Liunx 网络神器之抓包 --tcpdump
作者:邓聪聪 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中 ...
- 网络异常时抓包操作说明tcpdump+Wireshark
转债至 https://help.aliyun.com/knowledge_detail/40564.html?spm=5176.11065259.1996646101.searchclickresu ...
- 关于Android 7.0无法进行https抓包的问题
在App进行数据请求的时候,如果每次都打印log去判断是一件很不"人性化"的操作行为,所以一般都会进行抓包分析. 以最常用的软件Fiddler来说,进行普通的http抓包没什么事, ...
- [Android Pro] 关于Android 7.0无法进行https抓包的问题
cp from : https://www.cnblogs.com/wytings/p/6954293.html 在App进行数据请求的时候,如果每次都打印log去判断是一件很不“人性化”的操作行为 ...
- 比Wireshark更轻量、更方便的抓包软件:Charles
转:http://blog.csdn.net/lixing333/article/details/42776187 之前写过一篇通过Wireshark进行抓包,分析网络连接的文章<通过WireS ...
- 通过蓝牙共享网络设置Charles抓包
在办公室连接WiFi时,电脑和移动设备分配到的IP地址不在同一网段, 但是Android系统提供了一个非常方便的功能,可以搭建一个网络使得这两台设备处于同一网段,实现无障碍访问,使用Charles抓包 ...
- 使用Fiddler对Android手机的应用数据进行抓包分析
文章源自: http://blog.csdn.net/zshq280017423/article/details/8928616/ 对于Android开发的同事最头疼的事情莫过于真机抓包,然后Fidd ...
- 网络:W5500抓包TCP segment of a reassembled PDU
1.问题描述 W5500 http测试,用wireshark抓包,发现出现很多TCP segment of a reassembled PD. 2. 问题分析 TCP segment of a rea ...
随机推荐
- L - Deque 题解(区间dp)
题目链接 题目大意 给你一个双端队列里面有n个数组元素(n<=3000) 有两个人,每次一个人都可以选择队列里的首元素或者尾元素删除,轮流进行,删除后那个人即可获得这个元素的值 第一个人的总权值 ...
- 转载的一篇文章eclipse添加插件
eclipse没有(添加)"Dynamic Web Project"选项的方法 转载海边的第八只螃蟹 最后发布于2015-11-24 21:24:15 阅读数 40814 收藏 ...
- Android开发环境及Hello World程序
Android的开发需要以下四个工具: 1. JDK 2. Eclipse 3. Android SDK 4. ADT 具体功能: 1. JDK.JDK即Java Development Kit(Ja ...
- 软件工程与UML第三次作业
博客班级 软件工程与UML2班 作业要求 本次作业要求 作业目标 <给至少5名同学提他的代码issue并用博客记录;根据收到的issue修改自己的代码> 作业源代码 我的码云仓库 学号 & ...
- 如何破解QQ闪照
1.如何下载 通过公主公众号 "全是软件" 然后输入 294 即可获得下载链接 https://qsrj.lanzous.com/iU4Hddnnmne 目前的闪照破解工具只能破解 ...
- NetSuite实现pdf打印中的条形码的功能
2020-11-27 提起NS,在程序员这一块应该不怎么被人知道,算是比较小众的一门技术了,毕竟Netsuite兴起的时间算不上早,进入中国的时间更晚,除了从事这一块的程序员,可能都没有见过,恰好我是 ...
- PyQt(Python+Qt)学习随笔:gridLayout的layoutHorizontalSpacing和layoutVerticalSpacing属性
layoutHorizontalSpacing和layoutVerticalSpacing属性在Qt Designer中是网格布局(gridLayout)和表单布局(formLayout)都有的属性, ...
- mysql游标cursor与for循环
delimiter // create procedure p2() begin declare row_id int DEFAULT 0; declare row_num int DEFAULT 0 ...
- linux 的bash 和 反斜杠
export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12 export GLUE_DIR=/path/to/glue python run_ ...
- THE BUG 队第一次团队作业
1.队名: THE BUG 队 2.队员学号: 杨梓琦 3118005115(队长) 温海源,3118005109 陈杰才,3118005089 李华,3118005097 钟明康,311800512 ...