簡介html
Text2pcap是一個讀取ASCII hex轉儲的程序,它將描述的數據寫入pcap或pcapng文件。text2pcap能夠讀取包含多個數據包的hexdumps,並構建多個數據包的捕獲文件。text2pcap還可以生成虛擬以太網,IP和UDP,TCP或SCTP標頭,以便僅從應用級數據的hexdump構建徹底可處理的數據包轉儲。tcp
用法工具
該工具集成在Wireshark安裝包中,進入DoS切換到Wireshark安裝目錄(缺省:C:\Program Files\Wireshark)。使用命令: text2pcap [選項] <輸入文件名> <輸出文件名>大數據
選項spa
-o hex | oct | dec
指定偏移的基數(十六進制,八進制或十進制)。默認爲十六進制。詳細介紹見後文注意事項。
-t <timefmt>
將包以前的文本視爲日期/時間碼; timefmt是strptime(3)支持的排序格式字符串。示例:時間「10:15:14.5476」的格式代碼爲「%H:%M:%S」。若是不指定時間,則使用當前系統時間。
-n
以pcapng格式而不是pcap格式寫入文件。缺省爲pcap格式
-l
指定此數據包的鏈路層標頭類型。缺省爲以太網(1)。有關可能的封裝的完整列表,請參見http://www.tcpdump.org/linktypes.html。 請注意,若是轉儲是封裝數據包的完整十六進制轉儲,而且您但願指定確切的封裝類型,則應使用此選項。示例:-l 7用於封裝BSD樣式的ARCNet數據包。
-m <max-packet>
設置最大數據包長度,默認爲262144.
-h
幫助選項3d
當捕獲報文爲非完整數據實(好比只有應用層數據),可使用如下選項對報文頭進行構造:htm
-e <l3pid>
在每一個數據包以前包含一個虛擬以太網報頭。以十六進制指定以太網頭的L3PID。若是您的dump具備第3層標頭和有效負載(例如IP標頭),但沒有第2層封裝,請使用此選項。示例:-e 0x806指定ARP數據包。對於IP數據包,您也可使用-l 101來指示Wireshark的原始IP數據包,而不是生成虛假的以太網頭。請注意,-l 101不適用於任何非IP第3層數據包(例如ARP),而使用-e生成虛擬以太網頭適用於任何類型的L3數據包。
-i <proto>
在每一個數據包以前包含虛擬IP頭。以十進制指定數據包的IP協議。若是轉儲是IP數據包的有效負載(即具備完整的L4信息)但每一個數據包沒有IP頭,請使用此選項。請注意,每一個數據包也會自動包含適當的以太網標頭。示例:-i 46指定RSVP數據包(IP協議46)。有關分配的Internet協議號的完整列表,請參見http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml。
-4 <srcip>,<destip>
使用指定的IPv4 目的和源地址預先添加虛擬IP頭。此選項應附帶如下選項之一:-i,-s,-S,-T,-u使用此選項可應用「自定義」IP地址。示例:-4 10.0.0.1,10.0.0.2對全部IP數據包使用10.0.0.1和10.0.0.2。
-6 <srcip>,<destip>
使用指定的IPv6目標和源地址預先添加虛擬IP頭。此選項應附帶如下選項之一:-i,-s,-S,-T,-u使用此選項可應用「自定義」IP地址。示例:-6 fe80 :: 202:b3ff:fe1e:8329,2001:0db8:85a3 :: 8a2e:0370:7334使用fe80 :: 202:b3ff:fe1e:8329和2001:0db8:85a3 :: 8a2e:0370 :7334表示全部IP數據包。
-T <srcport>,<destport>
在每一個數據包以前包含虛擬TCP標頭。以十進制指定數據包的源和目標TCP端口。若是轉儲是數據包的TCP有效負載但不包含任何TCP,IP或以太網標頭,請使用此選項。請注意,每一個數據包都會自動包含適當的以太網和IP標頭。序號將從0開始。
-u <srcport>,<destport>
在每一個數據包以前包含虛擬UDP標頭。以十進制指定數據包的源和目標UDP端口。若是轉儲是數據包的UDP有效負載但不包含任何UDP,IP或以太網標頭,請使用此選項。請注意,每一個數據包都會自動包含適當的以太網和IP標頭。示例:-u1000,69使數據包看起來像TFTP / UDP數據包。blog
說明排序
一個標準的hex dump報文應該以下:ip
如上圖所示是wireshark官方文檔中的hex dump示例,標紅的地方即爲偏移量(offset),缺省爲16進制,每個新數據包以偏移量0開頭第一行一共16字節,所以第二行的偏移量爲16,對應到十六進制即爲:0x00010。
此外還有幾個地方須要注意:
一、每行的寬度或字節數沒有限制。此外,行末尾的文本轉儲也會被忽略。
二、字節/十六進制數能夠是大寫或小寫。
三、忽略偏移以前的任何文本,包括電子郵件轉發字符'>'。
四、字節串行之間的任何文本行都將被忽略。
五、偏移量用於跟蹤字節,所以偏移量必須正確。
六、任何只有字節而沒有前導偏移的行都將被忽略。
七、偏移被識別爲長於兩個字符的十六進制數。
八、忽略字節後的任何文本(例如字符轉儲),此文本中的任何十六進制數也會被忽略。
九、偏移量爲零表示啓動新數據包,所以具備一系列hexdumps的單個文本文件能夠轉換爲具備多個數據包的抓包文件。
示例
接下來經過root-me上的一道題目演示如何將hex dump文本轉換爲pcap文件。題目地址爲:https://www.root-me.org/en/Challenges/Network/ETHERNET-frame ,其中所涉及到的報文爲:
00 05 73 a0 00 00 e0 69 95 d8 5a 13 86 dd 60 00
00 00 00 9b 06 40 26 07 53 00 00 60 2a bc 00 00
00 00 ba de c0 de 20 01 41 d0 00 02 42 33 00 00
00 00 00 00 00 04 96 74 00 50 bc ea 7d b8 00 c1
d7 03 80 18 00 e1 cf a0 00 00 01 01 08 0a 09 3e
69 b9 17 a1 7e d3 47 45 54 20 2f 20 48 54 54 50
2f 31 2e 31 0d 0a 41 75 74 68 6f 72 69 7a 61 74
69 6f 6e 3a 20 42 61 73 69 63 20 59 32 39 75 5a
6d 6b 36 5a 47 56 75 64 47 6c 68 62 41 3d 3d 0d
0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 49 6e 73
61 6e 65 42 72 6f 77 73 65 72 0d 0a 48 6f 73 74
3a 20 77 77 77 2e 6d 79 69 70 76 36 2e 6f 72 67
0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 0d
0a
根據提示可知該報文爲以太網類型的報文,咱們可使用缺省參數進行轉換而無需經過-l指定鏈路層類型。
結合上一節中的說明可知,該報文沒有設置偏移字段,所以咱們須要手工設置偏移字段,偏移字段須要大於2個字符,這裏咱們設置成4個字符,報文的開始偏移量必定要設置爲0,每行16個字節,正好第二位加一:
0000 00 05 73 a0 00 00 e0 69 95 d8 5a 13 86 dd 60 00
0010 00 00 00 9b 06 40 26 07 53 00 00 60 2a bc 00 00
0020 00 00 ba de c0 de 20 01 41 d0 00 02 42 33 00 00
0030 00 00 00 00 00 04 96 74 00 50 bc ea 7d b8 00 c1
0040 d7 03 80 18 00 e1 cf a0 00 00 01 01 08 0a 09 3e
0050 69 b9 17 a1 7e d3 47 45 54 20 2f 20 48 54 54 50
0060 2f 31 2e 31 0d 0a 41 75 74 68 6f 72 69 7a 61 74
0070 69 6f 6e 3a 20 42 61 73 69 63 20 59 32 39 75 5a
0080 6d 6b 36 5a 47 56 75 64 47 6c 68 62 41 3d 3d 0d
0090 0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 49 6e 73
00a0 61 6e 65 42 72 6f 77 73 65 72 0d 0a 48 6f 73 74
00b0 3a 20 77 77 77 2e 6d 79 69 70 76 36 2e 6f 72 67
00c0 0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 0d
00d0 0a
00d1
將以上報文保存到txt文本,使用缺省參數進行轉換:
此時咱們使用wireshark打開剛剛生成的pcap文件:
能夠看到報文被完整的解析出來,上圖中標紅的字段通過base64解碼後即爲該題目的password。
另一種方法亦可將hex dump文本解析爲pcap。打開wireshark——點擊文件——從hex轉儲文件導入:
若是手工設置了或者hex轉儲文件自帶偏移量則能夠選擇偏移量爲16進制,若是hex dump文件沒有偏移值則偏移量選擇無也能夠正常導入文件:
參考資料:https://www.wireshark.org/docs/man-pages/text2pcap.html