如何抓Android系统上的数据包

2017-04-30

最近看到一个好办法,现在分享一下。

本文迁移自吾得,原始链接为 https://wudew.com/posts/54

首先,确认环境

Android手机上要求

  1. USB调试已经开启
  2. 你的手机已经root过(可以去各大厂商网站下载),并且解锁了system分区(自己百度),并且关闭了selinux(可以去酷安上下载SELinuxModeChanger)(后两条是建议去做)
  3. 已经安装busybox(可以去酷安上下载busybox pro),并且已经安装了tcpdump(busybox安装的时候应该会带上)
  4. 你的手机版本不是特别旧也不是特别新(建议)

电脑上要求

  1. 安装了Adb工具包,(Windows自己百度一大堆,Mac在安装完brew后使用brew安装(brew cask install android-platform-tools))
  2. 能够正常与手机通信(通过adb devices命令)
  3. 安装了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)测试成功。

加载中...

(。・∀・)ノ゙嗨,欢迎来到 lookas 的小站!

这里是 lookas 记录一些事情的地方,可能不时会有 lookas 的一些神奇的脑洞或是一些不靠谱的想法。

总之多来看看啦。