如何抓Android系统上的数据包
2017-04-30
最近看到一个好办法,现在分享一下。
本文迁移自吾得,原始链接为 https://wudew.com/posts/54
首先,确认环境
Android手机上要求
- USB调试已经开启
- 你的手机已经root过(可以去各大厂商网站下载),并且解锁了system分区(自己百度),并且关闭了selinux(可以去酷安上下载SELinuxModeChanger)(后两条是建议去做)
- 已经安装busybox(可以去酷安上下载busybox pro),并且已经安装了tcpdump(busybox安装的时候应该会带上)
- 你的手机版本不是特别旧也不是特别新(建议)
电脑上要求
- 安装了Adb工具包,(Windows自己百度一大堆,Mac在安装完brew后使用brew安装(
brew cask install android-platform-tools
)) - 能够正常与手机通信(通过
adb devices
命令) - 安装了busybox(自己百度,所以这里推荐使用mac等unix系系统进行)
当当当开始了
首先创建一个adb_tcpdump.sh文件,内容:
su
tcpdump -s 0 -w - | nc -l -p 11333
再创建一个adb_wireshark.sh文件,内容:
adb shell < adb_tcpdump.sh &
sleep 1
adb forward tcp:11333 tcp:11333
sleep 1
mkfifo /tmp/sharkfin
wireshark -k -i /tmp/sharkfin &
nc 127.0.0.1 11333 > /tmp/sharkfin
然后执行sh adb_wireshark.sh
即可,注意这两个文件要求在一个目录
本方案在MacOS(brew,wireshark,brew),Android7.0(busybox,root)测试成功。