实时监控Android设备网络封包

对Android网络抓包分析,一般是使用tcpdump抓个文件,再到PC用Wireshark打开分析。能不能达到直接使用Wireshark的效果? 答案是可以的,至少已经非常接近了。实现起来很简单,原理就是将tcpdump的数据重定向到网络端口,再通过管道(pipe)转到wireshark就可以了。

   基本结构

   如下图所示: 03

   Android上使用的指令:

   i. tcpdump

正是因为可以生成libpcap格式的数据,Wireshark可以加以处理。

 官网:http://www.tcpdump.org/

 下面这个链接介绍了Android版本的编译:

 http://omappedia.org/wiki/USB_Sniffing_with_tcpdump

   ii. netcat, 又称为瑞士军刀,小巧而功能强悍。如果在手机没有nc指令,可以方便地使用busybox提供的版本(直接到Google Play里安装)。

http://www.busybox.net/

   iii. Wireshark, 不嗦了。

http://www.wireshark.org/

   两条指令

   准备好了工具,依下面的方式执行两条指令就可以了 (只需要替换tcpdump所在的路径,以及nc前要不要加个busybox):

   i. 使用adb shell在Android设备上执行:

tcpdump -n -s 0 -w - | busybox nc -l -p 11233 

 *其中nc -l -p 11233, 即建立一个服务器端,以11233端口提供服务。需要以root用户执行。

   ii. 在主机的命令下执行:

adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233 | wireshark -k -S -i - 

*其nc 127.0.0.1 11233,即建立一个客户端,连接到本机的11233端口。wireshark的参数见后面的补充说明。

   *在Mac OS下有时需要在wireshark前加上sudo, 不然打开失败。如果没有看到结果,可以在nc指令加-v参数,显示更多的信息来查看。比如出现”Connection refused“时,注意检查指定的端口号是否正确。

   也可以参考这里:

http://www.kandroid.org/online-pdk/guide/tcpdump.html

   效果如下,注意标题显示”Capturing from Standard Input”。 04

   补充说明

   i. tcpdump详解

http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

   ii. 什么是libpcap格式

http://wiki.wireshark.org/Development/LibpcapFileFormat

   iii. wireshark参数

http://man.lupaworld.com/content/network/wireshark/c9.2.html

 官方:http://www.wireshark.org/docs/man-pages/wireshark.html

   *Wireshark还带一些其它指令,如下:

http://www.wireshark.org/docs/man-pages/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本人第一个Android程序,支持抓包(pcap)和对抓包文件进行分析(只支持http分析,自动解压gzip), 本程序无广告,无恶意代码, 如果不能用请告知手机信息和具体问题. Email: [email protected] 更新说明: V1.0.4 1.兼容Android4.2 V1.0.3 1.处理展示时间bug V1.0.2 1.增加部分机型适配 2.增加封包解析时间展示 3.处理长连接解析问题 说明: 1.请确认你的手机已ROOT 或者 能够在电脑上连接ADB 2.请确认你的手机有储存卡(/sdcard) 3.如果你的手机已经有ROOT权限,可以直接使用此应用进行抓包 4.如果没有获取ROOT权限,请使用 ADB命令 将应用生成的[/sdcard/tcpdump]复制到[/ststem/xbin/]目录下,并修改权限为6755后再次运行此应用抓包。 5.抓包文件保存在/sdcard/目录下,文件格式为.pcap 6.所抓取的数据包可以直接打开分析或者在电脑上使用Wireshark打开分析 7.注意在抓包过程中不要切换网络,否则会导致切换后的网络访问无法被抓取 ADB命令示例: adb root adb remount adb pull /sdcard/tcpdump c:\\ adb push c:\\tcpdump /system/xbin/ adb shell chmod 6755 /system/xbin/tcpdump 相关命令备注: 抓包命令:/system/xbin/tcpdump -p -s 0 -w /sdcard/xxxxxx.pcap 查看网卡:/system/xbin/tcpdump -D 或者 netcfg (查看状态为UP的网卡) 复制文件:cp 不成功可以使用 dd if=/sdcard/tcpdump of=/system/xbin/tcpdump 没有写权限:mount -o remount,rw / 和 mount -o remount,rw /system 参考代码: 手机抓包工具V2.0 pyhttpcap-master

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值