Android利用tcpdump和wireshark抓取网络数据包

主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次握手,但相对来说使用Fiddler进行网络数据抓包和展现更方便,优点包括:

(1)无需root (2)对Android和Iphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代理即可) (4)数据包的查看更清晰易懂 (5) 可以查看https请求,建议使用Fillder,具体可见:利用Fiddler进行网络数据抓包

1、下载并安装tcpdump
下载地址:tcpdump
安装tcpdump,命令行模式依次执行:

Java


1

2

3


adb root

adb push C:\Users\Trinea\Desktop\tcpdump /data/local/tcpdump

adb shell chmod 6755 /data/local/tcpdump

其中adb push的第一个参数为本地tcpdump的路径。

2、启动并运行tcpdump
命令行模式运行下面命令:


1


adb shell /data/local/tcpdump -n -s 0

这时在手机上做任何涉及到网络的操作都会在屏幕上打印出来,可以通过ctrl+c停止。

由于命令行最大输出的限制及屏幕不断滚动,查看不方便,我们可以将抓取的网络包保存到sd卡,如下命令:


1


adb shell /data/local/tcpdump -i any -p -s 0 -w /sdcard/netCapture.pcap

依然通过ctrl+c停止,将文件拉取到本地PC


1


adb pull /sdcard/netCapture.pcap d:\\

通过–help我们发现tcpdump支持如下参数:
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 ]
其中-c表示监控的请求个数;-C表示存储文件的最大大小;
-i表示监控的类型;-s表示抓取的网络请求返回的大小,0表示抓取整个网络包;-w表示抓取的包保存的文件路径,此时不会在标准输出打印。并且可以添加port参数表示端口。

3、利用wireshark分析数据

wireshark下载地址,中文版地址:http://www.onlinedown.net/softdown/2883_2.htm,英文版地址(需要翻墙):http://www.wireshark.org/download.html

用wireshark打开capture.pcap即可分析log
关于wireshark具体可见:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html

时间: 2024-09-29 02:19:42

Android利用tcpdump和wireshark抓取网络数据包的相关文章

如何用c或c++提取wireshark抓取的数据包中的数据

问题描述 如何用c或c++提取wireshark抓取的数据包中的数据 我用wireshark抓取了数据包 如何通过程序提取出其中我想要的信息呢?求程序 解决方案 http://wenku.baidu.com/link?url=HmlLwziHvQ2eDGwL-fYNxviUawq7lCSA4X866SQYy-r1NVuqC-pcwV7_8gCkVMmlzFiozXpYVmfdabGw_pLk57s6E1hQgkOugvIOuToJKvC

PHP中4种常用的抓取网络数据方法

  本小节的名称为 fsockopen,curl与file_get_contents,具体是探讨这三种方式进行网络数据输入输出的一些汇总.关于 fsockopen 前面已经谈了不少,下面开始转入其它.这里先简单罗列一下一些常见的抓取网络数据的一些方法. 1. 用 file_get_contents 以 get 方式获取内容: ? 1 2 3 $url = 'http://localhost/test2.php'; $html = file_get_contents($url); echo $ht

javascript-如何利用js或者jQuery抓取网页数据

问题描述 如何利用js或者jQuery抓取网页数据 有什么高效的方法吗,或者怎么实现,主要问题在于,怎么获取frame里的元素 解决方案 这个是服务器端弄的,客户端js受限于浏览器安全,无法直接获取跨域数据. 一定js可以用雅虎的yql将远程html下载转为jsonp数据,或者自己服务器做代理页面 解决方案二: bobo说的很对,要高效,建议你在服务器上抓取,或者干脆用io.js一类的将js作为本地应用的运行时.

PHP中4种常用的抓取网络数据方法_php技巧

本小节的名称为 fsockopen,curl与file_get_contents,具体是探讨这三种方式进行网络数据输入输出的一些汇总.关于 fsockopen 前面已经谈了不少,下面开始转入其它.这里先简单罗列一下一些常见的抓取网络数据的一些方法. 1. 用 file_get_contents 以 get 方式获取内容: $url = 'http://localhost/test2.php'; $html = file_get_contents($url); echo $html; 2. 用fo

使用Wireshark抓取SNMP Trap包

Wireshark SNMP Trap 过滤关键字:snmp && udp.dstport == 162        

bitmap-Android里通过C去抓取网络摄像机的Bitmap显示

问题描述 Android里通过C去抓取网络摄像机的Bitmap显示 Android里通过C去抓取网络摄像机的图像,1秒钟返回10帧, 也就是10个Bitmap(分辨率:720*480); Android应用层,用ImageView去setImageBitmap显示,画面会花屏.失真: 用surfaceview去draw的话,也是这样: 我想问:应该怎样去处理这些bitmap才不会让图像失真呢?在此先谢谢各位了. 解决方案 我有碰到过图像失真问题,首先你的弄清楚图片的格式,抓取的如果就是 jpeg

一个最简单的通过WireShark破解SSL加密网络数据包的方法

原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的.但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策.在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的   1. 简介     相信能访问到这篇文章的同行基本上都会用过流行的网络抓包工具WireShark,用它

java-抓取网络数据-----爬虫

问题描述 抓取网络数据-----爬虫 大概需求:要用java编写:到某个网站上抓取网络上页面的数据到本地,然后插入到数据库里面去,比如:我用一个账号登陆微博,然后程序就开始抓取网络上面的数据,如她给我的留言啊,信息啊等等!附加----插入到数据库里面的代码已经做好了,主要是到网站上抓取页面的数据到本地来不会做,没有思路!求助啊.... 解决方案 你可以用jsoup 抓取数据... 解决方案二: 登陆那里可以设置下cookie 然后可以用jsoup 抓取数据... 解决方案三: 你是怎么抽取你需要

wireshark抓取本地回环数据包和取出数据的方法

 这篇文章主要介绍了wireshark抓取本地回环数据包和取出数据的方法,需要的朋友可以参考下 一:The NPF driver isn't running   这个错误是因为没有开启NPF服务造成的.   NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap的核心部分,它是Winpcap完成困难工作的组件.它处理网络上传输的数据包,并且对用户级提供可捕获(capture).发送(injection)和分析性能(analysis capabilitie