共计 1628 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 如果想分析 Android 下 某个 APP 的网络数据交互,需要在 Android 手机上抓包,最常用的抓包工具非 tcpdump 莫属,用 tcpdump 生成 Wireshark 识别的 pcap 文件,然后将 pcap 文件下载到电脑上,用电脑上的 Wireshark 加载 pcap 文件,通过 Wireshark 分析 tcpdump 抓取的数据。 |
为 Android 手机安装 tcpdump,首先必须将 Android 手机 root,现在市面上常用的 root 工具都很傻瓜很强大,推荐使用 root 精灵,将手机 root 以后,我们就可以为手机安装 tcpdump 了。
先下载 tcpdump 文件,下载地址:http://pan.baidu.com/s/1sjM7wTZ
adb push tcpdump /sdcard/
adb Shell
su
cat /sdcard/tcpdump > /system/bin/tcpdump
上一条命令如果提示没有权限,接着执行如下命令尝试给 /system 目录增加写权限
su
mount
在 mount 结果中找到包含 /system 的一行,类似如下:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
去处 /system 前半行,即 ”/dev/block/platform/msm_sdcc.1/by-name/system”,执行如下命令:
mount -o remount /dev/block/platform/msm_sdcc.1/by-name/system /system
这个时候 /system 就拥有写权限了,继续执行:
cat /sdcard/tcpdump > /system/bin/tcpdump
chmod 777 /system/bin/tcpdump
到此为止,tcpdump 就成功安装到了 ”/system/bin/” 目录下,接着用如下命令还是抓包
tcpdump -i wlan0 -s 0 -w /sdcard/1.pcap
可以结束时使用 Ctrl+ c 快捷键让 tcpdump 结束抓包,抓到数据会存到 /sdcard/1.pcap 文件内
重新打开一个终端(Terminal),执行如下命令
adb pull /sdcard/1.pcap .
1.pcap 文件被下载到了终端上的当前目录下
从 Wireshark 官网 https://www.wireshark.org/ 下 载适合你系统的 Wireshark,然后点击你下载后的 Wireshark 安装包安装好 Wireshark,找到刚刚下载好的 1.pcap 文件,双击 1.pcap 文件,1.pcap 文件会自动被 Wireshark 打开。在 Wireshark 的 Filter 内输入如下一些过滤条件,可以更加方便地分析数 据来源。
view plaincopy to clipboardprint?
tcp.port == 80 // 过滤来自 80 端口的 TCP 数据
udp.port == 12345 // 过滤来自 12345 端口的 UDP 数据
ip.src == 192.168.0.1 // 过滤源 IP 为 192.168.0.1 的数据
ip.dst == 192.168.0.1 // 过目的 IP 为 192.168.0.1 的数据
以上过滤条件可以用 and 跟 or 相互组合,例如
view plaincopy to clipboardprint?
tcp.port == 80 and ip.src == 192.168.0.1 // 过滤来自 80 端口,源 IP 为 192.168.0.1 的 TCP 数
udp.port == 12345 or ip.dst == 192.168.0.1 // 过滤来自 12345 端口的 UDP 数据,或者目的 IP 为 192.168.0.1 的数据