- 什么是抓包?
- 为什么要进行抓包?
- 能够进行抓包的技术原理是什么?
- 有哪些工具可以用来辅助抓包?
- 主流的移动端抓包工具对比
1.什么是抓包?
不同主机之间的数据通信都是通过网络来进行传输,对那些在网络上传输的数据(发送、请求的数据)进行截获、编辑、转存等操作叫做抓包。抓包可以是抓取电脑端请求的数据,还可以抓取移动端(手机APP)的数据包。
2.为什么要进行抓包?
通过对网络上传输的数据进行抓取,可以对其进行分析,对于软件的Debug很大的帮助。当然也可以通过抓取用户发送的涉及用户名和密码的数据包来获取用户的密码。
3.能够进行抓包的技术原理是什么?
一般情况下,数据按照各种网络协议按照一定的格式在网络上进行传输,网络上传输的数据是以帧为单位,在对需要发送的数据进行包装的时候,会把数据的接收方、发送的的地址(MAC地址、IP地址等)一起进行包装并进行发送。根据发送方和接收方的地址,会有一条数据包的传输路径,在这条路径上,发送的数据包,会经过网络上很多台主机,标准的TCP/IP协议是这样处理的:当有数据经过主机时,主机会通过存放在数据包里面的地址来进行判断,这个数据包是否是发送自己的,如果不是发给自己的,主机就不会对它进行解析,简单的进行丢弃(转发)。如果是发送给自己的,那么主机就会对其进行解析和存储。
如果想要存储那些不是发送给自己的数据包,可以把网络适配卡设置为杂乱模式。这样它就会接收经过它的每一个数据包了。
4.有哪些工具可以用来辅助移动端数据抓包?
- Charles
- mitmproxy
- Fiddler
- WireShark
- TcpDump
5.主流的移动端抓包工具对比
目前主流的移动端抓包工具为:TcpDump、WireShark、Fiddler, 他们的对比如下。
1. TcpDump:
Android平台下的网络数据抓包工具,Android模拟器中自带 TcpDump 文件。
用 TcpDump 对网络数据抓包,手机不用走代理——将网络数据包添加到 WireShark 中分析即可。
缺点:
- 手机必须获取 root权限;
- 不能查看实时通信数据——因为抓取的是 dump出来的文件,而不能实时数据交互;
获取的数据很多,分析时需要过滤、只查看真正有用的信息。
2. WireShark:
PC端截获、分析通过该网卡的所有网络通信的数据包(针对移动端时候,就要对移动端设置 代理服务器)强大的工具,完整查看网络中的每层、每个协议、每个数据包的详细组成信息;TCP、UDP、HTTP、HTTPS等协议的数据包均可获取;
缺点:
- 获取的信息太多,需要手动过滤、进行分析。
- 只能查看,不能修改、重发送网络数据包。
3. Fiddler:
HTTP协议的代理工具,抓取、分析电脑中所有进出该网卡、与网络进行数据交互的数据(针对移动端抓包时,需要设置代理服务器),主要针对的是 HTTP/HTTPS协议;能够清晰查看 数据包 中的内容——HTTPS中的数据包可以解密出来;
优点:
- 简单易操作,选中后即可修改Response结果
- 所见即所得,修改后马上可以看到效果
缺点:
- 只适用于一次请求,下次请求需要重新设定
- 手动修改需要花费时间,如果程序等待超时,本次设定的Response结果失效