android抓包 (adb)

来源:互联网 发布:nodejs 知乎 编辑:程序博客网 时间:2024/05/22 15:25
1. Android手机需要先获得root权限

2. 下载tcpdump
http://www.strazzere.com/android/tcpdump

3. 将tcpdump工具放入android系统中
adb push c:\wherever_you_put\tcpdump /data/local/tcpdump
--如果提示没有权限,那就最简单的就是用下面的方法:
--adb push tcpdump /data/local/tmp/tcpdump

4. 修改tcpdump的权限
adb shell chmod 6755 /data/local/tcpdump

5. 进入命令行模式,并获取root权限
adb shell
su

6, 运行tcpdump
rm -r /sdcard/capture.pcap
--删除之前抓取的同名数据包文件
cd /data/local
./tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
--有的设备sdcard并不在根目录下,根据实际情况输入对应路径
--命令参数:
    # "-i any": listen on any network interface
  # "-p": disable promiscuous mode (doesn't work anyway)
  # "-s 0": capture the entire packet
  # "-w": write packets to a file (rather than printing to stdout)

7. 将抓取的数据包拷贝到本地
adb pull /sdcard/capture.pcap d:/

8. 在电脑上用wireshark打开capture.pcap即可分析log

-------------------------------------------------------------------------------------------------------
根据以上的信息,写一个bat去执行(tcpdump文件必须在当前目录里)。
开始tcpdump :
adb shell rm -r /sdcard/capture.pcap
adb shell  /data/local/tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
pause

下载tcpdump文件到电脑 
adb pull  /sdcard/capture.pcap d:/ 

问题:有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切换到root,这样在执行批处理会有问题,解决方法如下
adb shell "su -c 'sleep 1'"
adb start-server
adb push c:\wherever_you_put\tcpdump /data/local/tcpdump

--异常情况:root后adb shell默认不是root用户时,如何将文件放入手机系统中,请参考 :http://blog.csdn.net/wirelessqa/article/details/8624208
0 0
原创粉丝点击