- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Tcpdump格式文件分析
Tcpdump格式文件分析
一、前言
Tcpdump是Linux系统上最有名的抓包工具,它所保存的dmp格式文件能被许多抓包分析工具读取(EtherPeek、Ethereal、WinPcap等)。
由于想通过读取Tcpdump格式文件的方式,分析抓取到的数据包。查阅过许多关于TCP/IP协议的书,都是关于IP数据包这层的分析。没有关于Tcpdump格式文件的介绍。后来看过Tcpdump主页()上下载的源码后发现,其对Tcpdump格式文件的处理是通过libpcap这个库实现的。你也可以调用这个库实现对Tcpdump格式文件的读取,但美中不足的是它只提供C语言调用库,不提供Java语言调用库。最后在其网站的/release/地址看到了libpcap库的源代码,以下所有结论都是通过分析这个源代码得出的,并且只对Tcpdump格式文件主版本号大于等于2的有效(在之后的Tcpdump格式文件头中会对主版本号加以说明)。
二、总体介绍
Tcpdump格式文件是标准的二进制文件,可以使用UltraEdit等工具打开。分析后发现其文件分为三部分:
Tcpdump格式文件头;
Packet头;
IP数据报包。
其中Tcpdump格式文件头长度为24个字节,Packet头部分长度为16个字节,并且在所有的抓包分析工具(EtherPeek、Ethereal、WinPcap等)中都不能显示出来。
下图就是各部分内容的示意图,其中标记了一个Tcpdump格式文件头和两对Packet头+ IP数据报包。
三、背景知识
Tcpdump在处理Tcpdump格式文件头和Packet头部分数据时将所有数据颠倒后再进行保存的,所以当从Tcpdump格式文件中读出这两部分数据后还需要再颠倒回来。
以下内容摘自libpcap源代码的savefile.c文件中:
共提供两个方法:
SWAPLONG函数将长整形的前后颠倒,例如:将AABBCCDD颠倒为DDCCBBAA;
SWAPSHORT函数将短整形的前后颠倒,例如:将AABB颠倒为BBAA。
四、Tcpdump格式文件头
1、Tcpdump格式文件头各部分说明
2、Tcpdump格式文件标记
Tcpdump格式文件标记为32位无符号整形(4字节)。在C原文件中定义为“#define TCPDUMP_MAGIC 0xa1b2c3d4”。从原文件中读出为0xd4c3b2a1然后通过颠倒就为定义的0xa1b2c3d4。
3、主版本号、子版本号
主版本号、子版本号均为16位无符号整形(2字节)。主版本号为0x0200,子版本号0x0400。颠倒后变为主版本号为0x0002,子版本号0x0004。
4、时区、精确的时间戳
时区、精确的时间戳均为32位无符号整形(4字节)。在抓到的所有数据包里均为0,而且在源代码中也没大看懂是干什么用的(如果有谁看懂了请通知我,谢谢!)。
我的猜测结论如下:
1、时区,可能会根据这个时区的设置,将每个Packet头中的时间戳转换成本地时间显示;
2、精确的时间戳,这个实在不明白有什么作用,并且在源代码中看到这个值无论在什么情况下都被强制赋了个0?
5、每个数据包大小
每个数据包大小为32位无符号整形(4字节)。每个数据包大小为0颠倒后变为0转为十进制为96字节。其记录的是使用Tcpdump命令的-s参数时设置的值。
说明:
-s:设置每个数据包的大小,单位为字节,默认值为68;
6、数据链类型
数据链类型为32位无符号整形(4字节)。数据链类型为0颠倒后变为0但其含义不是很明白(如果有谁看懂了请通知我,谢谢!)。
7、C源代码
以下内容摘自libpcap源代码的pcap.h文件中:
五、Packet头
1、Packet头各部分说明
2、时间戳
时间戳由两个32位无符号整形构成(8字节),其中高4位为时间戳的秒部分,低4位为时间戳的微秒部分(百万分之一秒)。
2.1秒部分
这是本文档中最难理解的部分,因为不能通过简单的计算来说明,必需使用编程语言来帮助说明。秒部分为0x3e3fda44。颠倒后秒部分为0x44da3f3e。将其转为十进制为1155153726。
A)Java语言
以上代码运行结果为“Thu Aug 10 04:02:06 CST 2006”,也就是在EtherPeek中看到的04:02:06 08/10/2006。
为什么要乘以1000呢?是因为在Java语言中Date的构造函数必须输入毫秒值,但得到的十进制是秒,所以要乘以1000。
B)C语言
可以使用如下语句:
最后ts就是你要的时间。
2.2微秒部分
微秒部分为0xea230b00。颠倒后微秒部分为0x000b2
您可能关注的文档
- Representation and Hidden Bias II Eliminating Defining Length Bias in Genetic Search via Sh.pdf
- Representation_从再现到表征_论斯图尔特_霍尔的文化表征理论.pdf
- Requirements and Design Approach for a HighReliability.pdf
- Research Development center of foreign capital policy.ppt
- Request_irq和setup_irq的区别.doc
- Research and Development of an Online Instrument for Measuring Cooling Air Flow of Car Radiator.pdf
- Research of the Characteristics of Radio Wave Propagations around the HighSpeed Railway.pdf
- Research_Methods_in_Economics.pdf
- Request和Response程序设计.doc
- Resource Access Control for Dynamic Priority Distributed RealTime Systems.pdf
- 2025年中国视音频矩阵切换分配器市场调查研究报告.docx
- 2023安徽合肥市长丰县公共资源交易有限责任公司招聘人员3人笔试参考题库附带答案详解.pdf
- 2025年中国移动投光灯具市场调查研究报告.docx
- 2025年中国铜/钼铜/铜电子封装材料市场调查研究报告.docx
- 2023届大庆炼化分公司高校毕业生春季招聘5人笔试参考题库附带答案详解.pdf
- 2023山东日照交通能源发展集团有限公司招聘专业技术人员6人笔试参考题库附带答案详解.pdf
- 2023年中国南水北调集团新能源投资有限公司夏季校园招聘1人笔试参考题库附带答案详解.pdf
- 2023年中国电信蚌埠分公司客户经理招聘笔试参考题库附带答案详解.pdf
- 2023年中国矿业大学资源与地球科学学院江苏省能源国际有限公司工程技术人员招聘笔试参考题库附带答案详解.pdf
- 2025年中国浮球式液位变送器市场调查研究报告.docx
文档评论(0)