微信号:anzhuoCoder

介绍:分享android开发编程知识和相关技术应用

实时监控Android设备网络封包

2016-06-28 15:15 Horky

来自:UC技术博客

作者:Horky

链接:http://tech.uc.cn/?p=2278


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


基本结构


如下图所示:



Android上使用的指令:


  • tcpdump

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

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

    • 这个链接介绍了Android版本的编译: http://omappedia.org/wiki/USB_Sniffing_with_tcpdump

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

    • http://www.busybox.net/

  • Wireshark, 不啰嗦了。

    • http://www.wireshark.org/


两条指令


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


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

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

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

  • 在主机的命令下执行:

    • 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”。




补充说明


  • tcpdump详解

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

  • 什么是libpcap格式

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

  • 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/



●本文编号84,以后想阅读这篇文章直接输入84即可。

●输入m可以获取到文章目录

今日微信公号推荐↓↓↓
 


更多推荐15个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。传播计算机学习经验、推荐计算机优秀资源:点击前往《值得关注的15个技术类微信公众号》!


点击阅读原文,了解野狗

 
安卓开发 更多文章 Android性能优化典范 快速学会开发Android App Android通关书单,iOS可入 对Android初学者的10个建议 8个最优秀的Android Studio插件
猜您喜欢 『推荐』计算机视觉算法库 Tracking.js 银联基于OpenStack的金融私有云建设实践 返利网获2000万美元B轮融资 欲打造线上和线下一体化返利平台 【测试漫谈】基于GUI的自动化测试框架漫谈 OpenStack的拥护者队伍不断壮大