xref: /freebsd/contrib/file/magic/Magdir/sniffer (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1
2#------------------------------------------------------------------------------
3# $File: sniffer,v 1.32 2022/07/30 16:46:56 christos Exp $
4# sniffer:  file(1) magic for packet capture files
5#
6# From: guy@alum.mit.edu (Guy Harris)
7#
8
9#
10# Microsoft Network Monitor 1.x capture files.
11#
120	string		RTSS		NetMon capture file
13>5	byte		x		- version %d
14>4	byte		x		\b.%d
15>6	leshort		0		(Unknown)
16>6	leshort		1		(Ethernet)
17>6	leshort		2		(Token Ring)
18>6	leshort		3		(FDDI)
19>6	leshort		4		(ATM)
20>6	leshort		>4		(type %d)
21
22#
23# Microsoft Network Monitor 2.x capture files.
24#
250	string		GMBU		NetMon capture file
26>5	byte		x		- version %d
27>4	byte		x		\b.%d
28>6	leshort		0		(Unknown)
29>6	leshort		1		(Ethernet)
30>6	leshort		2		(Token Ring)
31>6	leshort		3		(FDDI)
32>6	leshort		4		(ATM)
33>6	leshort		5		(IP-over-IEEE 1394)
34>6	leshort		6		(802.11)
35>6	leshort		7		(Raw IP)
36>6	leshort		8		(Raw IP)
37>6	leshort		9		(Raw IP)
38>6	leshort		>9		(type %d)
39
40#
41# Network General Sniffer capture files.
42# Sorry, make that "Network Associates Sniffer capture files."
43# Sorry, make that "Network General old DOS Sniffer capture files."
44#
450	string		TRSNIFF\040data\040\040\040\040\032	Sniffer capture file
46>33	byte		2		(compressed)
47>23	leshort		x		- version %d
48>25	leshort		x		\b.%d
49>32	byte		0		(Token Ring)
50>32	byte		1		(Ethernet)
51>32	byte		2		(ARCNET)
52>32	byte		3		(StarLAN)
53>32	byte		4		(PC Network broadband)
54>32	byte		5		(LocalTalk)
55>32	byte		6		(Znet)
56>32	byte		7		(Internetwork Analyzer)
57>32	byte		9		(FDDI)
58>32	byte		10		(ATM)
59
60#
61# Cinco Networks NetXRay capture files.
62# Sorry, make that "Network General Sniffer Basic capture files."
63# Sorry, make that "Network Associates Sniffer Basic capture files."
64# Sorry, make that "Network Associates Sniffer Basic, and Windows
65# Sniffer Pro", capture files."
66# Sorry, make that "Network General Sniffer capture files."
67# Sorry, make that "NetScout Sniffer capture files."
68#
690	string		XCP\0		NetXRay capture file
70>4	string		>\0		- version %s
71>44	leshort		0		(Ethernet)
72>44	leshort		1		(Token Ring)
73>44	leshort		2		(FDDI)
74>44	leshort		3		(WAN)
75>44	leshort		8		(ATM)
76>44	leshort		9		(802.11)
77
78#
79# "libpcap" capture files.
80# https://www.tcpdump.org/manpages/pcap-savefile.5.html
81# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
82# the main program that uses that format, but there are other programs
83# that use "libpcap", or that use the same capture file format.)
84#
850	name		pcap-be
86>4	beshort		x		- version %d
87>6	beshort		x		\b.%d
88# clear that continuation level match
89>20	clear		x
90>20	belong&0x03FFFFFF		0		(No link-layer encapsulation
91>20	belong&0x03FFFFFF		1		(Ethernet
92>20	belong&0x03FFFFFF		2		(3Mb Ethernet
93>20	belong&0x03FFFFFF		3		(AX.25
94>20	belong&0x03FFFFFF		4		(ProNET
95>20	belong&0x03FFFFFF		5		(CHAOS
96>20	belong&0x03FFFFFF		6		(Token Ring
97>20	belong&0x03FFFFFF		7		(BSD ARCNET
98>20	belong&0x03FFFFFF		8		(SLIP
99>20	belong&0x03FFFFFF		9		(PPP
100>20	belong&0x03FFFFFF		10		(FDDI
101>20	belong&0x03FFFFFF		11		(RFC 1483 ATM
102>20	belong&0x03FFFFFF		12		(Raw IP
103>20	belong&0x03FFFFFF		13		(BSD/OS SLIP
104>20	belong&0x03FFFFFF		14		(BSD/OS PPP
105>20	belong&0x03FFFFFF		19		(Linux ATM Classical IP
106>20	belong&0x03FFFFFF		50		(PPP or Cisco HDLC
107>20	belong&0x03FFFFFF		51		(PPP-over-Ethernet
108>20	belong&0x03FFFFFF		99		(Symantec Enterprise Firewall
109>20	belong&0x03FFFFFF		100		(RFC 1483 ATM
110>20	belong&0x03FFFFFF		101		(Raw IP
111>20	belong&0x03FFFFFF		102		(BSD/OS SLIP
112>20	belong&0x03FFFFFF		103		(BSD/OS PPP
113>20	belong&0x03FFFFFF		104		(BSD/OS Cisco HDLC
114>20	belong&0x03FFFFFF		105		(802.11
115>20	belong&0x03FFFFFF		106		(Linux Classical IP over ATM
116>20	belong&0x03FFFFFF		107		(Frame Relay
117>20	belong&0x03FFFFFF		108		(OpenBSD loopback
118>20	belong&0x03FFFFFF		109		(OpenBSD IPsec encrypted
119>20	belong&0x03FFFFFF		112		(Cisco HDLC
120>20	belong&0x03FFFFFF		113		(Linux cooked v1
121>20	belong&0x03FFFFFF		114		(LocalTalk
122>20	belong&0x03FFFFFF		117		(OpenBSD PFLOG
123>20	belong&0x03FFFFFF		119		(802.11 with Prism header
124>20	belong&0x03FFFFFF		122		(RFC 2625 IP over Fibre Channel
125>20	belong&0x03FFFFFF		123		(SunATM
126>20	belong&0x03FFFFFF		127		(802.11 with radiotap header
127>20	belong&0x03FFFFFF		129		(Linux ARCNET
128>20	belong&0x03FFFFFF		130		(Juniper Multi-Link PPP
129>20	belong&0x03FFFFFF		131		(Juniper Multi-Link Frame Relay
130>20	belong&0x03FFFFFF		132		(Juniper Encryption Services PIC
131>20	belong&0x03FFFFFF		133		(Juniper GGSN PIC
132>20	belong&0x03FFFFFF		134		(Juniper FRF.16 Frame Relay
133>20	belong&0x03FFFFFF		135		(Juniper ATM2 PIC
134>20	belong&0x03FFFFFF		136		(Juniper Advanced Services PIC
135>20	belong&0x03FFFFFF		137		(Juniper ATM1 PIC
136>20	belong&0x03FFFFFF		138		(Apple IP over IEEE 1394
137>20	belong&0x03FFFFFF		139		(SS7 MTP2 with pseudo-header
138>20	belong&0x03FFFFFF		140		(SS7 MTP2
139>20	belong&0x03FFFFFF		141		(SS7 MTP3
140>20	belong&0x03FFFFFF		142		(SS7 SCCP
141>20	belong&0x03FFFFFF		143		(DOCSIS
142>20	belong&0x03FFFFFF		144		(Linux IrDA
143>20	belong&0x03FFFFFF		147		(Private use 0
144>20	belong&0x03FFFFFF		148		(Private use 1
145>20	belong&0x03FFFFFF		149		(Private use 2
146>20	belong&0x03FFFFFF		150		(Private use 3
147>20	belong&0x03FFFFFF		151		(Private use 4
148>20	belong&0x03FFFFFF		152		(Private use 5
149>20	belong&0x03FFFFFF		153		(Private use 6
150>20	belong&0x03FFFFFF		154		(Private use 7
151>20	belong&0x03FFFFFF		155		(Private use 8
152>20	belong&0x03FFFFFF		156		(Private use 9
153>20	belong&0x03FFFFFF		157		(Private use 10
154>20	belong&0x03FFFFFF		158		(Private use 11
155>20	belong&0x03FFFFFF		159		(Private use 12
156>20	belong&0x03FFFFFF		160		(Private use 13
157>20	belong&0x03FFFFFF		161		(Private use 14
158>20	belong&0x03FFFFFF		162		(Private use 15
159>20	belong&0x03FFFFFF		163		(802.11 with AVS header
160>20	belong&0x03FFFFFF		164		(Juniper Passive Monitor PIC
161>20	belong&0x03FFFFFF		165		(BACnet MS/TP
162>20	belong&0x03FFFFFF		166		(PPPD
163>20	belong&0x03FFFFFF		167		(Juniper PPPoE
164>20	belong&0x03FFFFFF		168		(Juniper PPPoE/ATM
165>20	belong&0x03FFFFFF		169		(GPRS LLC
166>20	belong&0x03FFFFFF		170		(GPF-T
167>20	belong&0x03FFFFFF		171		(GPF-F
168>20	belong&0x03FFFFFF		174		(Juniper PIC Peer
169>20	belong&0x03FFFFFF		175		(Ethernet with Endace ERF header
170>20	belong&0x03FFFFFF		176		(Packet-over-SONET with Endace ERF header
171>20	belong&0x03FFFFFF		177		(Linux LAPD
172>20	belong&0x03FFFFFF		178		(Juniper Ethernet
173>20	belong&0x03FFFFFF		179		(Juniper PPP
174>20	belong&0x03FFFFFF		180		(Juniper Frame Relay
175>20	belong&0x03FFFFFF		181		(Juniper C-HDLC
176>20	belong&0x03FFFFFF		182		(FRF.16 Frame Relay
177>20	belong&0x03FFFFFF		183		(Juniper Voice PIC
178>20	belong&0x03FFFFFF		184		(Arinc 429
179>20	belong&0x03FFFFFF		185		(Arinc 653 Interpartition Communication
180>20	belong&0x03FFFFFF		186		(USB with FreeBSD header
181>20	belong&0x03FFFFFF		187		(Bluetooth HCI H4
182>20	belong&0x03FFFFFF		188		(802.16 MAC Common Part Sublayer
183>20	belong&0x03FFFFFF		189		(Linux USB
184>20	belong&0x03FFFFFF		190		(Controller Area Network (CAN) v. 2.0B
185>20	belong&0x03FFFFFF		191		(802.15.4 with Linux padding
186>20	belong&0x03FFFFFF		192		(PPI
187>20	belong&0x03FFFFFF		193		(802.16 MAC Common Part Sublayer plus radiotap header
188>20	belong&0x03FFFFFF		194		(Juniper Integrated Service Module
189>20	belong&0x03FFFFFF		195		(802.15.4 with FCS
190>20	belong&0x03FFFFFF		196		(SITA
191>20	belong&0x03FFFFFF		197		(Endace ERF
192>20	belong&0x03FFFFFF		198		(Ethernet with u10 Networks pseudo-header
193>20	belong&0x03FFFFFF		199		(IPMB
194>20	belong&0x03FFFFFF		200		(Juniper Secure Tunnel
195>20	belong&0x03FFFFFF		201		(Bluetooth HCI H4 with pseudo-header
196>20	belong&0x03FFFFFF		202		(AX.25 with KISS header
197>20	belong&0x03FFFFFF		203		(LAPD
198>20	belong&0x03FFFFFF		204		(PPP with direction pseudo-header
199>20	belong&0x03FFFFFF		205		(Cisco HDLC with direction pseudo-header
200>20	belong&0x03FFFFFF		206		(Frame Relay with direction pseudo-header
201>20	belong&0x03FFFFFF		209		(Linux IPMB
202>20	belong&0x03FFFFFF		215		(802.15.4 with non-ASK PHY header
203>20	belong&0x03FFFFFF		216		(Linux evdev events
204>20	belong&0x03FFFFFF		219		(MPLS with label as link-layer header
205>20	belong&0x03FFFFFF		220		(Memory-mapped Linux USB
206>20	belong&0x03FFFFFF		221		(DECT
207>20	belong&0x03FFFFFF		222		(AOS Space Data Link protocol
208>20	belong&0x03FFFFFF		223		(Wireless HART
209>20	belong&0x03FFFFFF		224		(Fibre Channel FC-2
210>20	belong&0x03FFFFFF		225		(Fibre Channel FC-2 with frame delimiters
211>20	belong&0x03FFFFFF		226		(Solaris IPNET
212>20	belong&0x03FFFFFF		227		(SocketCAN
213>20	belong&0x03FFFFFF		228		(Raw IPv4
214>20	belong&0x03FFFFFF		229		(Raw IPv6
215>20	belong&0x03FFFFFF		230		(802.15.4 without FCS
216>20	belong&0x03FFFFFF		231		(D-Bus messages
217>20	belong&0x03FFFFFF		232		(Juniper Virtual Server
218>20	belong&0x03FFFFFF		233		(Juniper SRX E2E
219>20	belong&0x03FFFFFF		234		(Juniper Fibre Channel
220>20	belong&0x03FFFFFF		235		(DVB-CI
221>20	belong&0x03FFFFFF		236		(MUX27010
222>20	belong&0x03FFFFFF		237		(STANAG 5066 D_PDUs
223>20	belong&0x03FFFFFF		238		(Juniper ATM CEMIC
224>20	belong&0x03FFFFFF		239		(Linux netfilter log messages
225>20	belong&0x03FFFFFF		240		(Hilscher netAnalyzer
226>20	belong&0x03FFFFFF		241		(Hilscher netAnalyzer with delimiters
227>20	belong&0x03FFFFFF		242		(IP-over-Infiniband
228>20	belong&0x03FFFFFF		243		(MPEG-2 Transport Stream packets
229>20	belong&0x03FFFFFF		244		(ng4t ng40
230>20	belong&0x03FFFFFF		245		(NFC LLCP
231>20	belong&0x03FFFFFF		246		(Packet filter state syncing
232>20	belong&0x03FFFFFF		247		(InfiniBand
233>20	belong&0x03FFFFFF		248		(SCTP
234>20	belong&0x03FFFFFF		249		(USB with USBPcap header
235>20	belong&0x03FFFFFF		250		(Schweitzer Engineering Laboratories RTAC packets
236>20	belong&0x03FFFFFF		251		(Bluetooth Low Energy air interface
237>20	belong&0x03FFFFFF		252		(Wireshark Upper PDU export
238>20	belong&0x03FFFFFF		253		(Linux netlink
239>20	belong&0x03FFFFFF		254		(Bluetooth Linux Monitor
240>20	belong&0x03FFFFFF		255		(Bluetooth Basic Rate/Enhanced Data Rate baseband packets
241>20	belong&0x03FFFFFF		256		(Bluetooth Low Energy air interface with pseudo-header
242>20	belong&0x03FFFFFF		257		(PROFIBUS data link layer
243>20	belong&0x03FFFFFF		258		(Apple DLT_PKTAP
244>20	belong&0x03FFFFFF		259		(Ethernet with 802.3 Clause 65 EPON preamble
245>20	belong&0x03FFFFFF		260		(IPMI trace packets
246>20	belong&0x03FFFFFF		261		(Z-Wave RF profile R1 and R2 packets
247>20	belong&0x03FFFFFF		262		(Z-Wave RF profile R3 packets
248>20	belong&0x03FFFFFF		263		(WattStopper Digital Lighting Mngmt/Legrand Nitoo Open Proto
249>20	belong&0x03FFFFFF		264		(ISO 14443 messages
250>20	belong&0x03FFFFFF		265		(IEC 62106 Radio Data System groups
251>20	belong&0x03FFFFFF		266		(USB with Darwin header
252>20	belong&0x03FFFFFF		267		(OpenBSD DLT_OPENFLOW
253>20	belong&0x03FFFFFF		268		(IBM SDLC frames
254>20	belong&0x03FFFFFF		269		(TI LLN sniffer frames
255>20	belong&0x03FFFFFF		271		(Linux vsock
256>20	belong&0x03FFFFFF		272		(Nordic Semiconductor Bluetooth LE sniffer frames
257>20	belong&0x03FFFFFF		273		(Excentis XRA-31 DOCSIS 3.1 RF sniffer frames
258>20	belong&0x03FFFFFF		274		(802.3br mPackets
259>20	belong&0x03FFFFFF		275		(DisplayPort AUX channel monitoring data
260>20	belong&0x03FFFFFF		276		(Linux cooked v2
261>20	belong&0x03FFFFFF		278		(OpenVizsla USB
262>20	belong&0x03FFFFFF		279		(Elektrobit High Speed Capture and Replay (EBHSCR)
263>20	belong&0x03FFFFFF		281		(Broadcom tag
264>20	belong&0x03FFFFFF		282		(Broadcom tag (prepended)
265>20	belong&0x03FFFFFF		283		(802.15.4 with TAP
266>20	belong&0x03FFFFFF		284		(Marvell DSA
267>20	belong&0x03FFFFFF		285		(Marvell EDSA
268>20	belong&0x03FFFFFF		286		(ELEE lawful intercept
269>20	belong&0x03FFFFFF		287		(Z-Wave serial
270>20	belong&0x03FFFFFF		288		(USB 2.0
271>20	belong&0x03FFFFFF		289		(ATSC ALP
272>20	belong&0x03FFFFFF		290		(Event Tracing for Windows
273>20	belong&0x03FFFFFF		291		(Hilscher netANALYZER NG pseudo-footer
274>20	belong&0x03FFFFFF		292		(ZBOSS NCP protocol with pseudo-header
275>20	belong&0x03FFFFFF		293		(Low-Speed USB 2.0/1.1/1.0
276>20	belong&0x03FFFFFF		294		(Full-Speed USB 2.0/1.1/1.0
277>20	belong&0x03FFFFFF		295		(High-Speed USB 2.0
278# print default match
279>20	default		x
280>>20	belong		x		(linktype#%u
281>16	belong		x		\b, capture length %u)
282
283# packets time stamps in seconds and microseconds.
2840	ubelong		0xa1b2c3d4	pcap capture file, microseconds ts (big-endian)
285!:mime	application/vnd.tcpdump.pcap
286>0	use	pcap-be
2870	ulelong		0xa1b2c3d4	pcap capture file, microsecond ts (little-endian)
288!:mime	application/vnd.tcpdump.pcap
289>0	use	\^pcap-be
290
291# packets time stamps in seconds and nanoseconds.
2920	ubelong		0xa1b23c4d	pcap capture file, nanosecond ts (big-endian)
293!:mime	application/vnd.tcpdump.pcap
294>0	use	pcap-be
2950	ulelong		0xa1b23c4d	pcap capture file, nanosecond ts (little-endian)
296!:mime	application/vnd.tcpdump.pcap
297>0	use	\^pcap-be
298
299#
300# "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
301#
3020	ubelong		0xa1b2cd34	pcap capture file, microsecond ts, extensions (big-endian)
303>0	use	pcap-be
3040	ulelong		0xa1b2cd34	pcap capture file, microsecond ts, extensions (little-endian)
305>0	use	\^pcap-be
306
307#
308# "pcapng" capture files.
309# https://github.com/pcapng/pcapng
310# Pcapng files can contain multiple sections. Printing the endianness,
311# snaplen, or other information from the first SHB may be misleading.
312#
3130	ubelong		0x0a0d0d0a
314>8	ubelong		0x1a2b3c4d	pcapng capture file
315>>12	beshort		x		- version %d
316>>14	beshort		x		\b.%d
3170	ulelong		0x0a0d0d0a
318>8	ulelong		0x1a2b3c4d	pcapng capture file
319>>12	leshort		x		- version %d
320>>14	leshort		x		\b.%d
321
322#
323# AIX "iptrace" capture files.
324#
3250	string		iptrace\0401.0	AIX iptrace capture file
3260	string		iptrace\0402.0	AIX iptrace capture file
327
328#
329# Novell LANalyzer capture files.
330#
3310	leshort		0x1001		Novell LANalyzer capture file
3320	leshort		0x1007		Novell LANalyzer capture file
333
334#
335# HP-UX "nettl" capture files.
336#
3370	string		\x54\x52\x00\x64\x00	HP/UX nettl capture file
338
339#
340# RADCOM WAN/LAN Analyzer capture files.
341#
3420	string		\x42\xd2\x00\x34\x12\x66\x22\x88	RADCOM WAN/LAN Analyzer capture file
343
344#
345# NetStumbler log files.  Not really packets, per se, but about as
346# close as you can get.  These are log files from NetStumbler, a
347# Windows program, that scans for 802.11b networks.
348#
3490	string		NetS		NetStumbler log file
350>8	lelong		x		\b, %d stations found
351
352#
353# *Peek tagged capture files.
354#
3550	string		\177ver		EtherPeek/AiroPeek/OmniPeek capture file
356
357#
358# Visual Networks traffic capture files.
359#
3600	string		\x05VNF		Visual Networks traffic capture file
361
362#
363# Network Instruments Observer capture files.
364#
3650	string		ObserverPktBuffe	Network Instruments Observer capture file
366
367#
368# Files from Accellent Group's 5View products.
369#
370# URL:		http://www.infovista.com
371# Reference:	http://mark0.net/download/triddefs_xml.7z
372#		defs/0/5vw.trid.xml
373#		https://2.na.dl.wireshark.org/src/wireshark-3.6.2.tar.xz
374#		wireshark-3.6.2/wiretap/5views.c
375# Update:	Joerg Jenderek
376# Note:		called "5View capture" by TrID and
377#		"Wireshark capture file" on Windows or
378#		"Packet Capture (Accellent/InfoVista 5view)" by shared MIME-info database
379#		verified/falsified by `wireshark *.5vw`
3800	string		\xaa\xaa\xaa\xaa
381# skip misidentified boot/x86_64/loader/kroete.dat on Suse LEAP DVD
382# by check for valid record version
383>8	ulelong		=0x00010000
384>>0	use	5view-le
3850	name	5view-le
386# t_5VW_Info_Header.Signature = CST_5VW_INFO_HEADER_KEY = 0xAAAAAAAAU
387>0	ulelong		x			5View capture file
388# https://reposcope.com/mimetype/application/x-5view
389!:mime	application/x-5view
390!:ext	5vw
391# size of header in bytes (included signature and reserved fields); probably always 20h
392>4	ulelong		!0x00000020		\b, header size %#x
393# version of header record; apparently always CST_5VW_INFO_RECORD_VERSION=0x00010000U
394>8	ulelong		!0x00010000		\b, record version %#x
395# DataSize; total size of data without header like: 18h
396>12	ulelong		x			\b, record size %#x
397# filetype; type of the capture file like: 18001000h
398>16	ulelong		x			\b, file type %#8.8x
399# Reserved[3]; reserved for future use; apparently zero
400>20	quad		!0			\b, Reserved %#llx
401# look for record header key CST_5VW_RECORDS_HEADER_KEY of structure t_5VW_TimeStamped_Header
402>0x20	search/0xB8/b	\xEE\xEE\x33\x33	\b; record
403# HeaderSize; actual size of this header in bytes like: 32 24h
404>>&0	uleshort	x			size %#x
405# HeaderType; exact type of this header; probably always 0x4000
406>>&2	uleshort	!0x4000			\b, header type %#x
407# RecType; type of record like: 80000000h
408>>&4	ulelong		x			\b, record type %#x
409# RecSubType; subtype of record like: 0
410>>&8	ulelong		!0			\b, subtype %#x
411# RecSize; Size of one record like: 5Ch
412>>&12	ulelong		x			\b, RecSize %#x
413# RecNb; Number of records like: 1
414>>&16	ulelong		>1			\b, %#x records
415# Timestamp Utc
416#>>&20	ulelong		x			\b, RAW TIME %#8.8x
417>>&20	date		x			\b, Time-stamp %s
418