出于某些目的,我正在运行用于Android的tcpdump工具Shark。我在两个android设备上运行这个程序,获取捕获文件,然后打算在上面运行一些统计数据。一台平板电脑和一部手机。它们分别运行Android4.2.2和4.3。这两个设备的捕获都是使用标志-vv -s 0运行的。我当然试过重新安装了。
查看Wireshark中的数据,手机上的数据很好,但平板电脑的数据无法正确读取(无法识别任何协议或任何内容)。
我试着在文件上使用pcapfix,但是pcapfix说文件很好。但是我无法在替罪羊中阅读它,dpkt (用于读取网络流量的python库,只会将每个包都扔到“其他”中,被读为"Raw")或wireshark。
有谁知道我做错了什么,或者怎么修复这个文件?
数据来自移动通信量(没有wifi)。手机在LTE/WCDMA/GSM上,平板电脑在WCDMA/GSM上。我要试着看看这是否是原因,但要到明天才会发生。
发布于 2015-08-13 19:16:52
引用libpcap中的commit注释,以便我尝试处理这个特定的*up:
For various annoying reasons having to do with DHCP software, some
versions of Android give the mobile-phone-network interface an ARPHRD_
value of ARPHRD_ETHER, even though the packet supplied by that interface
have no link-layer header, and begin with an IP header, so that the
ARPHRD_ value should be ARPHRD_NONE.这意味着那些捕获的pcap有错误的链接层标头类型。
如果你有Wireshark,你有社论;做
editcap -T rawip -F pcap shark_dump_tablet.pcap shark_dump_tablet_fixed.pcap这将读取shark_dump_tablet.pcap的所有数据包,并将它们写入名为shark_dump_tablet_fixed.pcap的新pcap中,但在文件头中使用链接层头类型“原始IP",而不是”以太网“。您应该能够读取结果文件。
https://stackoverflow.com/questions/31989223
复制相似问题