Mac + Wireshark 实现Android应用抓包

时间:2021-08-20 12:49:54

1、 使用环境

PC
系统:Ubuntu 16.04
使用软件:WireShark


手机
系统:android 模拟器(android 工程机)
软件:busybox

其他工具: adb,nc 命令

2、实现思路

要实现实时监控两种思路:一种是使用代理在代理过程中获取数据内容;一种是用 tcpdump 抓包将数据发往 PC 端。

本文介绍的是第二种方式:在手机中使用 tcpdump 命令抓取数据,将数据转发出去,PC 端接收转发到的数据,将数据传给 WireShark。

3、 实现过程

按照上面的思路分为一下四个过程:

  <1> 手机端抓包

  使用 tcpdump 获取网络包

  <2> 手机端转发数据

  使用 nc 将数据发往指定端口

  <3> 将 android 中数据发往 PC

  使用 adb 命令转发数据

  <4> PC 接收数据

  使用 nc 获取数据

  <5> PC 分析数据

  使用 WireShark 分析数据

 

手机

# 使用 tcpdump 抓包,并将结果输出到终端,再通过管道和 nc 监听 12345 端口,等待连接
tcpdump -n -s 0 -w - | busybox nc -l -p 12345

PC

# 使用 adb 转发 socket 连接
adb forward tcp:12345 tcp:12345
# nc 连接 PC 12345 端口,通过上面的 adb forward 命令即连接上手机的 12345 端口
nc 127.0.0.1 12345 | wireshark -k -S -i -