pcap文件格式分析


  pcap文件格式是常用的數據報存儲格式,包括wireshark在內的主流抓包軟件都可以生成這種格式的數據包, 下面對這種格式的文件簡單分析一下:
  pcap文件的格式為:
      文件頭    24字節
      數據報頭 + 數據報  數據包頭為16字節,后面緊跟數據報
      數據報頭 + 數據報  ......
1.pcap文件頭(24B)結構

  pcap文件頭處於pcap文件的最開始處,大小固定為24字節,文件頭中各自段說明如下:

Magic:4B:0×1A 2B 3C 4D:用來識別文件自己和字節順序。0xa1b2c3d4用來表示按照原來的順序讀取,0xd4c3b2a1表示下面的字節都要交換順序讀取。一般,我們使用0xa1b2c3d4
Major:2B,0×02 00:當前文件主要的版本號
Minor:2B,0×04 00當前文件次要的版本號
ThisZone:4B 時區。GMT和本地時間的相差,用秒來表示。如果本地的時區是GMT,那么這個值就設置為0.這個值一般也設置為0 SigFigs:4B時間戳的精度;全零
SnapLen:4B最大的存儲長度(該值設置所抓獲的數據包的最大長度,如果所有數據包都要抓獲,將該值設置為65535; 例如:想獲取數據包的前64字節,可將該值設置為64)
LinkType:4B鏈路類型
 
2.packet包頭(16B)和packet數據組成
(左圖范圍應為Packet Header1)
Timestamp:時間戳高位,精確到seconds(值是自從January 1, 1970 00:00:00 GMT以來的秒數來記)
Timestamp:時間戳低位,精確到microseconds (數據包被捕獲時候的微秒(microseconds)數,是自ts-sec的偏移量)
Caplen:當前數據區的長度,即抓取到的數據幀長度,由此可以得到下一個數據幀的位置。
Len:離線數據長度 網絡中實際數據幀的長度,一般不大於caplen,多數情況下和Caplen數值相等。
(例如,實際上有一個包長度是1500 bytes(L en=1500),但是因為在Global Header的 snaplen=1300有限制,所以只能抓取這個包的前1300個字節,這個時候, Caplen = 1300 )
Packet  數據:即 Packet(通常就是鏈路層的數據幀)具體內容,長度就是Caplen,這個長度的后面,就是當前PCAP文件中存放的下一個Packet數據包,也就 是說:PCAP文件里面並沒有規定捕獲的Packet數據包之間有什么間隔字符串,下一組數據在文件中的起始位置。我們需要靠第一個Packet包確定。 最后,Packet數據部分的格式其實就是標准的網路協議格式了可以任何網絡教材上找得到。
                                                  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM