B.在AVD中抓包的方法
第一步:准备工作
1.需要su工具,build.prop文件;系统环境windows
2.启动cmd.exe,转到sdk包的tools路径下,接下来按下面的步骤执行。
F:\Android\Dev\android-sdk-windows\tools>adb remount
remount succeeded
F:\Android\Dev\android-sdk-windows\tools>adb push su /system/bin/
253 KB/s (26264 bytes in 0.101s)
注:如果出现Out of memory提示,解决方法见最下面的备注处。
F:\Android\Dev\android-sdk-windows\tools>adb push build.prop /system/build.prop
39 KB/s (1533 bytes in 0.038s)
F:\Android\Dev\android-sdk-windows\tools>adb remount
remount succeeded
F:\Android\Dev\android-sdk-windows\tools>adb push build.prop /system/build.prop
41 KB/s (1533 bytes in 0.036s)
F:\Android\Dev\android-sdk-windows\tools>adb push su /system/bin/
341 KB/s (26264 bytes in 0.075s)
F:\Android\Dev\android-sdk-windows\tools>adb shell chmod 4755 /system/bin/su
第二步:开始抓包
F:\Android\Dev\android-sdk-windows\tools>adb push F:\Android\Dev\tcpdump /data/tcpdump
293 KB/s (645840 bytes in 2.147s)
F:\Android\Dev\android-sdk-windows\tools>adb shell chmod 6755 /data/tcpdump
F:\Android\Dev\android-sdk-windows\tools>adb shell
# cd data
cd data
# ./tcpdump -i any -p -s 0 -w /mnt/capture.pcap
./tcpdump -i any -p -s 0 -w /mnt/capture.pcap
tcpdump: /mnt/capture.pcap: Read-only file system
不要将抓到的包放在系统文件下,有读写权限问没有解决。放到sdcard中
# ./tcpdump -i any -p -s 0 -w /sdcard/catch.pcap
./tcpdump -i any -p -s 0 -w /sdcard/catch.pcap
如果提示:
# ./tcpdump -i any -p -s 0 -w /sdcard/catch.pcap
./tcpdump -i any -p -s 0 -w /sdcard/catch.pcap
./tcpdump: permission denied
请使用如下命令E:\tea\sdk\tools>adb shell chmod 6755 /data/tcpdump
然后再执行:# ./tcpdump -i any -p -s 0 -w /sdcard/catch.pcap
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
^C
F:\Android\Dev\android-sdk-windows\tools>adb pull /sdcard/catch.pcap
231 KB/s (272958 bytes in 1.152s)
F:\Android\Dev\android-sdk-windows\tools>
最后用wireshark工具分析(其的网络包分析工具也行):
(wireshark下载路径:http://download.csdn.net/detail/qq2399431200/5337979)
没有CSDN账号的也可以邮我:99688385@qq.com。
备注:
如果出现Out of memory(ARM空间不足)的提示,请关闭AVD,在电脑中重新开启终端输入并执行:
F:\>cd Android\Dev\android-sdk-windows\tools
F:\Android\Dev\android-sdk-windows\tools>emulator -avd MyAVD -partition-size 177
其中MyAVDC是你的AVD的名字,177是RAM的大小,单位M
你的AVD重新启动后,不要关闭这个终端重新开始从上面的“第一步”开始重做。
还有一点要说明的是,次情况的设置关闭 AVD 后就无效了,因为这个 AVD 是从终端中启动的