通常就两种,一种是HTTP,另外一种就是跑到android系统里面去抓包了
相关环境:
Android开发环境
Fiddler2:有绿色版本下载
Tcpdump: android系统自带的
第一个:抓取HTTP协议包
android-sdk 目录下运行AVD Manager.exe
创建模拟器:android4.0
01.png
一定要记得先打开fiddle
打开cmd窗口:
cd .\android-sdk\tools
启动模拟器,留心-avd后面的名称和上图红框里面的一致,下面两条命令试试,哪条行就用哪条,我在不同的机器上遇到过分别成功的情况:
emulator -avd android4.0 -http-proxy10.0.2.2:8888
emulator -avd android4.0 -http-proxy127.0.0.1:8888
或者用第二种方法,不过需要是真机:
安卓4.0浏览器wifi的代理设置:
打开WIFI-->点击要连接的WIFI名称 -->输入密码(隐藏输入法键盘)-->显示高级选项(勾选 )-->屏幕向上滑动-->代理设置-->手动
随便打开一个浏览器,访问一下google,可以看到了数据被抓到了吧
第二个:tcpdump
打开了模拟器后:
打开cmd窗口:
Cd D:\Android\android-sdk\platform-tools
Adb shell
出现#提示符
Tcpdump –r filename
使用ctrl+c断开
参考:
C:\Users\Administrator>adb shell # tcpdump --help tcpdump --help tcpdump version 3.9.8 libpcap version 0.9.8 Usage: tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -Z user ] [ expression ] |
怎么我看到的是明文返回的,linux下的tcpdump抓到的不是十六进制包吗
补充 :
16进制抓包步骤 :
adb shell
su
tcpdump -p -vvv -s 0 host xxx.xxx.xxx.xxx -w /sdcard/01.cap
按ctrl+c终止后取回文件:
adb pull /sdcard/01.cap
文本记录抓取步骤:
adb shell
su
tcpdump -p -vvv -s 0 -A host xxx.xxx.xxx.xxx >/sdcard/01.txt
adb pull /sdcard/01.txt