TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags
[wireshark-sm.git] / doc / wsug_src / wsug_files.adoc
blob7819d4846429307e3c739c72dafce1e8fad2f235
1 // WSUG Appendix Files
3 [#AppFiles]
5 [appendix]
6 == Files and Folders
8 [#ChAppFilesCaptureFilesSection]
10 === Capture Files
12 To understand which information will remain available after the captured packets
13 are saved to a capture file, it’s helpful to know a bit about the capture file
14 contents.
16 Wireshark uses the
17 link:https://github.com/pcapng/pcapng[pcapng] file
18 format as the default format to save captured packets. It is very flexible
19 but other tools may not support it.
21 Wireshark also supports the
22 {wireshark-wiki-url}/Development/LibpcapFileFormat[libpcap] file
23 format. This is a much simpler format and is well established. However, it has
24 some drawbacks: it’s not extensible and lacks some information that would be
25 really helpful (e.g., being able to add a comment to a packet such as “the
26 problems start here” would be really nice).
28 In addition to the libpcap format, Wireshark supports several different capture
29 file formats. However, the problems described above also applies for these
30 formats.
32 [#ChIOFileContentSection]
34 ==== Libpcap File Contents
36 At the start of each libpcap capture file some basic information is stored like
37 a magic number to identify the libpcap file format. The most interesting
38 information of this file start is the link layer type (Ethernet, 802.11,
39 MPLS, etc.).
41 The following data is saved for each packet:
43 * The timestamp with millisecond resolution
45 * The packet length as it was “on the wire”
47 * The packet length as it’s saved in the file
49 * The packet’s raw bytes
51 A detailed description of the libpcap file format can be found at
52 {wireshark-wiki-url}Development/LibpcapFileFormat
54 [#ChIOFileNotContentSection]
56 ==== Not Saved in the Capture File
58 You should also know the things that are _not saved_ in capture files:
60 * Current selections (selected packet, ...)
62 * Name resolution information. See <<ChAdvNameResolutionSection>> for details
65 Pcapng files can optionally save name resolution information. Libpcap files
66 can’t. Other file formats have varying levels of support.
69 * The number of packets dropped while capturing
71 * Packet marks set with “Edit/Mark Packet”
73 * Time references set with “Edit/Time Reference”
75 * The current display filter
77 [#ChConfigurationPluginFolders]
79 === Configuration File and Plugin Folders
81 To match the different policies for Unix-like systems and Windows, and
82 different policies used on different Unix-like systems, the folders
83 containing configuration files and plugins are different on different
84 platforms.  We indicate the location of the top-level folders under
85 which configuration files and plugins are stored here, giving them
86 placeholder names independent of their actual location, and use those
87 names later when giving the location of the folders for configuration
88 files and plugins.
90 [TIP]
91 ====
92 A list of the folders Wireshark actually uses can be found under the _Folders_
93 tab in the dialog box shown when you select _About Wireshark_ from the _Help_
94 menu.
95 ====
97 ==== Folders on Windows
99 _%APPDATA%_ is the personal application data folder, e.g.:
100 _C:\Users{backslash}**username**\AppData\Roaming\Wireshark_ (details can be
101 found at: <<ChWindowsProfiles>>).
103 _WIRESHARK_ is the Wireshark program folder, e.g.: _C:\Program
104 Files\Wireshark_.
106 ==== Folders on Unix-like systems
108 _$XDG_CONFIG_HOME_ is the folder for user-specific configuration files.
109 It’s usually _$HOME/.config_, where _$HOME_ is the user’s home folder, which
110 is usually something such as _/home/**username**_, or
111 _/Users/**username**_ on macOS.
113 If you are using macOS and you are running a copy of Wireshark
114 installed as an application bundle, _APPDIR_ is the top-level directory
115 of the Wireshark application bundle, which will typically be
116 _/Applications/Wireshark.app_.  Otherwise, _INSTALLDIR_ is the top-level
117 directory under which reside the subdirectories in which components of
118 Wireshark are installed.  This will typically be `/usr` if Wireshark is
119 bundled with the system (for example, provided as a package with a Linux
120 distribution) and _/usr/local_ if, for example, you’ve built Wireshark
121 from source and installed it.
123 [#ChAppFilesConfigurationSection]
125 === Configuration Files
127 Wireshark uses a number of configuration files while it is running. Some of these
128 reside in the personal configuration folder and are used to maintain information
129 between runs of Wireshark, while some of them are maintained in system areas.
131 The content format of the configuration files is the same on all platforms.
133 On Windows:
135 * The personal configuration folder for Wireshark is the
136 _Wireshark_ sub-folder of that folder, i.e., _%APPDATA%\Wireshark_.
138 * The global configuration folder for Wireshark is the Wireshark program
139 folder and is also used as the system configuration folder.
141 On Unix-like systems:
143 * The personal configuration folder is
144 _$XDG_CONFIG_HOME/wireshark_.  For backwards compatibility with
145 Wireshark before 2.2, if _$XDG_CONFIG_HOME/wireshark_ does not
146 exist and _$HOME/.wireshark_ is present, then the latter will be used.
148 * If you are using macOS and you are running a copy of Wireshark
149 installed as an application bundle, the global configuration folder is
150 _APPDIR/Contents/Resources/share/wireshark_.  Otherwise, the
151 global configuration folder is _INSTALLDIR/share/wireshark_.
153 * The _/etc_ folder is the system configuration folder.  The folder
154 actually used on your system may vary, maybe something like:
155 _/usr/local/etc_.
157 [#AppFilesTabFolders]
158 .Configuration files overview
159 [options="header"]
160 |===
161 |File/Folder|Description
162 |_cfilters_|Capture filters.
163 |_colorfilters_|Coloring rules.
164 |__dfilter_buttons__|Display filter buttons.
165 |_dfilters_|Display filters.
166 |__disabled_protos__|Disabled protocols.
167 |__dmacros__|Display filter macros.
168 |_ethers_|Ethernet name resolution.
169 |_hosts_|IPv4 and IPv6 name resolution.
170 |_ipxnets_|IPX name resolution.
171 |_manuf_|Ethernet name resolution.
172 |_preferences_|Settings from the Preferences dialog box.
173 |_recent_|Per-profile GUI settings.
174 |__recent_common__|Common GUI settings.
175 |_services_|Network services.
176 |_ss7pcs_|SS7 point code resolution.
177 |_subnets_|IPv4 subnet name resolution.
178 |_vlans_|VLAN ID name resolution.
179 |_wka_|Well-known MAC addresses.
180 |===
182 [discrete]
183 ===== File contents
185 cfilters::
188 This file contains all the capture filters that you have defined and saved. It
189 consists of one or more lines, where each line has the following format:
191 ----
192 "<filter name>" <filter string>
193 ----
195 At program start, if there is a _cfilters_ file in the personal
196 configuration folder, it is read.  If there isn’t a _cfilters_ file in
197 the personal configuration folder, then, if there is a _cfilters_ file
198 in the global configuration folder, it is read.
200 When you press the Save button in the “Capture Filters” dialog box,
201 all the current capture filters are written to the personal capture
202 filters file.
205 colorfilters::
208 This file contains all the color filters that you have defined and saved. It
209 consists of one or more lines, where each line has the following format:
211 ----
212 @<filter name>@<filter string>@[<bg RGB(16-bit)>][<fg RGB(16-bit)>]
213 ----
215 At program start, if there is a _colorfilters_ file in the personal
216 configuration folder, it is read.  If there isn’t a _colorfilters_ file
217 in the personal configuration folder, then, if there is a _colorfilters_
218 file in the global configuration folder, it is read.
220 When you press the Save button in the “Coloring Rules” dialog box,
221 all the current color filters are written to the personal color filters
222 file.
225 dfilter_buttons::
228 This file contains all the display filter buttons that you have defined and
229 saved. It consists of one or more lines, where each line has the following
230 format:
232 ----
233 "TRUE/FALSE","<button label>","<filter string>","<comment string>"
234 ----
236 where the first field is TRUE if the button is enabled (shown).
238 At program start, if there is a __dfilter_buttons__ file in the personal
239 configuration folder, it is read. If there isn’t a __dfilter_buttons__ file
240 in the personal configuration folder, then, if there is a __dfilter_buttons__
241 file in the global configuration folder, it is read.
243 When you save any changes to the filter buttons, all the current display
244 filter buttons are written to the personal display filter buttons file.
247 dfilters::
250 This file contains all the display filters that you have defined and saved. It
251 consists of one or more lines, where each line has the following format:
253 ----
254 "<filter name>" <filter string>
255 ----
257 At program start, if there is a _dfilters_ file in the personal
258 configuration folder, it is read.  If there isn’t a _dfilters_ file in
259 the personal configuration folder, then, if there is a _dfilters_ file
260 in the global configuration folder, it is read.
262 When you press the Save button in the “Display Filters” dialog box,
263 all the current display filters are written to the personal display
264 filters file.
267 disabled_protos::
270 Each line in this file specifies a disabled protocol name. The following are
271 some examples:
273 ----
276 ----
278 At program start, if there is a __disabled_protos__ file in the global
279 configuration folder, it is read first.  Then, if there is a
280 __disabled_protos__ file in the personal configuration folder, that is
281 read; if there is an entry for a protocol set in both files, the setting
282 in the personal disabled protocols file overrides the setting in the
283 global disabled protocols file.
285 When you press the Save button in the “Enabled Protocols” dialog box,
286 the current set of disabled protocols is written to the personal
287 disabled protocols file.
290 dmacros::
293 This file contains all the display filter macros that you have defined and saved.
294 It consists of one or more lines, where each line has the following format:
296 ----
297 "<macro name>" <macro expression>
298 ----
300 At program start, if there is a __dmacros__ file in the personal
301 configuration folder, it is read. If there isn’t a __dmacros__ file
302 in the personal configuration folder, then, if there is a __dmacros__
303 file in the global configuration folder, it is read.
305 In versions of Wireshark prior to 4.4, the display filter macros were
306 stored in a __dfilter_macros__ file with a somewhat different format,
307 a <<ChUserTable,UAT>>. At program start if the __dmacros__ file
308 is not found a __dfilter_macros__ file is looked for in the personal and
309 global configuration folders and converted to the new format.
311 When you press the Save button in the "Display Filter Macros" dialog box,
312 all the current display filter macros are written to the personal display
313 filter macros file.
315 More information about Display Filter Macros is available in
316 <<ChWorkDefineFilterMacrosSection>>
319 ethers::
322 When Wireshark is trying to translate a hardware MAC address to
323 a name, it consults the _ethers_ file in the personal configuration
324 folder first.  If the address is not found in that file, Wireshark
325 consults the _ethers_ file in the system configuration folder.
327 This file has a similar format to the _/etc/ethers_ file on some Unix-like systems.
328 Each line in these files consists of one hardware address and name separated by
329 whitespace (tabs or spaces). The hardware addresses are expressed as pairs
330 of hexadecimal digits separated by colons (:), dashes (-), or periods(.), with
331 the same separator used in the entire address. A `#` can be used to indicate
332 a comment that extends to the rest of the line. NIS lookups, as in some
333 UNIX-like systems, are not supported. The following are some examples:
335 ----
336 ff-ff-ff-ff-ff-ff    Broadcast
337 c0-00-ff-ff-ff-ff    TR_broadcast
338 00.2b.08.93.4b.a1    Freds_machine
339 ----
341 The settings from this file are read in when a MAC address is to be
342 translated to a name, and never written by Wireshark.
345 hosts::
348 Wireshark uses the entries in the _hosts_ files to translate IPv4 and
349 IPv6 addresses into names.
351 At program start, if there is a _hosts_ file in the global configuration
352 folder, it is read first.  Then, if there is a _hosts_ file in the
353 personal configuration folder, that is read; if there is an entry for a
354 given IP address in both files, the setting in the personal hosts file
355 overrides the entry in the global hosts file.
357 This file has the same format as the usual _/etc/hosts_ file on Unix systems.
359 An example is:
361 ----
362 # Comments must be prepended by the # sign!
363 192.168.0.1 homeserver
364 ----
366 The settings from this file are read in at program start and never written by
367 Wireshark.
370 ipxnets::
373 When Wireshark is trying to translate an IPX network number to
374 a name, it consults the _ipxnets_ file in the personal configuration
375 folder first.  If the address is not found in that file, Wireshark
376 consults the _ipxnets_ file in the system configuration folder.
379 An example is:
380 ----
381 C0.A8.2C.00      HR
382 c0-a8-1c-00      CEO
383 00:00:BE:EF      IT_Server1
384 110f             FileServer3
385 ----
387 The settings from this file are read in when an IPX network number is to
388 be translated to a name, and never written by Wireshark.
391 manuf::
394 At program start, if there is a _manuf_ file in the global configuration
395 folder, it is read first.  Then, if there is a _manuf_ file in the personal
396 configuration folder, that is read; if there is an entry for a given address
397 prefix in both files, the setting in the personal file overrides the entry
398 in the global file.
400 The entries in this file are used to translate MAC address prefixes into short and long manufacturer names.
401 Each line consists of a MAC address prefix followed by an abbreviated manufacturer name and the full manufacturer name.
402 Prefixes 24 bits long by default and may be followed by an optional length.
403 Note that this is not the same format as the _ethers_ file, which does not
404 allow prefix lengths.
406 Examples are:
408 ----
409 00:00:01        Xerox   Xerox Corporation
410 00:50:C2:00:30:00/36      Microsof        Microsoft
411 ----
413 In earlier versions of Wireshark, official information from the IEEE
414 Registration Authority was distributed in this format as the _manuf_ file
415 in the global configuration folder. In current versions of Wireshark, this
416 information is compiled into the program to speed startup, but if a file
417 is present in the global configuration folder it is still read, and can
418 be used to supplement or replace the official data just as the personal
419 file does. The compiled-in information can be written out in this format
420 as a report with `tshark -G manuf`.
422 The settings from this file are read in at program start and never written by Wireshark.
425 preferences::
428 This file contains your Wireshark preferences, including defaults for capturing
429 and displaying packets. It is a simple text file containing statements of the
430 form:
432 ----
433 variable: value
434 ----
436 At program start, if there is a _preferences_ file in the global
437 configuration folder, it is read first.  Then, if there is a
438 _preferences_ file in the personal configuration folder, that is read;
439 if there is a preference set in both files, the setting in the personal
440 preferences file overrides the setting in the global preference file.
442 If you press the Save button in the “Preferences” dialog box, all the
443 current settings are written to the personal preferences file.
446 recent::
449 This file contains GUI settings that are specific to the current profile, such as column widths and toolbar visibility.
450 It is a simple text file containing statements of the form:
452 ----
453 variable: value
454 ----
456 It is read at program start and written when preferences are saved and at program exit.
457 It is also written and read whenever you switch to a different profile.
460 recent_common::
463 This file contains common GUI settings, such as recently opened capture files, recently used filters, and window geometries.
464 It is a simple text file containing statements of the form:
466 ----
467 variable: value
468 ----
470 It is read at program start and written when preferences are saved and at program exit.
473 services::
476 Wireshark uses the _services_ files to translate port numbers into names.
478 At program start, if there is a _services_ file in the global
479 configuration folder, it is read first.  Then, if there is a _services_
480 file in the personal configuration folder, that is read; if there is an
481 entry for a given port number in both files, the setting in the personal
482 _services_ file overrides the entry in the global _services_ file.
483 The format is that of the standard _services(5)_ file on UNIX-compatible
484 systems.
486 An example is:
488 ----
489 mydns       5045/udp     # My own Domain Name Server
490 mydns       5045/tcp     # My own Domain Name Server
491 ----
493 In earlier versions of Wireshark, official information from the IANA
494 Service Name and Transport Protocol Port Number Registry was distributed
495 in this format as the _services_ file in the global configuration folder.
496 In current versions of Wireshark, this information is compiled into the
497 program to speed startup, but if a file is present in the global configuration
498 folder it is still read, and can be used to supplement or replace the official
499 data just as the personal file does. The compiled-in information can be
500 written out in this format as a report with `tshark -G services`.
502 The settings from these files are read in at program start and never
503 written by Wireshark.
506 ss7pcs::
509 Wireshark uses the _ss7pcs_ file to translate SS7 point codes to node names.
511 At program start, if there is a _ss7pcs_ file in the personal
512 configuration folder, it is read.
514 Each line in this file consists of one network indicator followed by a dash followed by a point code in decimal and a node name separated by whitespace or tab.
516 An example is:
517 ----
518 2-1234 MyPointCode1
519 ----
521 The settings from this file are read in at program start and never written by
522 Wireshark.
525 subnets::
528 Wireshark uses the __subnets__ file to translate an IPv4 address into a
529 subnet name.  If no exact match from a __hosts__ file or from DNS is
530 found, Wireshark will attempt a partial match for the subnet of the
531 address.
533 At program start, if there is a _subnets_ file in the personal
534 configuration folder, it is read first.  Then, if there is a _subnets_
535 file in the global configuration folder, that is read; if there is a
536 preference set in both files, the setting in the global preferences file
537 overrides the setting in the personal preference file.
539 Each line in one of these files consists of an IPv4 address, a subnet
540 mask length separated only by a “/” and a name separated by whitespace.
541 While the address must be a full IPv4 address, any values beyond the
542 mask length are subsequently ignored.
544 An example is:
545 ----
546 # Comments must be prepended by the # sign!
547 192.168.0.0/24 ws_test_network
548 ----
550 A partially matched name will be printed as “subnet-name.remaining-address”.
551 For example, “192.168.0.1” under the subnet above would be printed as
552 “ws_test_network.1”; if the mask length above had been 16 rather than 24, the
553 printed address would be “ws_test_network.0.1”.
555 The settings from these files are read in at program start and never
556 written by Wireshark.
558 The __subnets__ file also changes the behavior of the Endpoints and
559 Conversations Statistics dialogs for the IPv4 protocol when the IPv4 user
560 preference _Aggregate subnets in Statistics Dialogs_ is enabled. In this
561 case, when an IPv4 address matches a subnet, the statistics dialog will
562 show this subnet instead of the IPv4 address.
565 vlans::
568 Wireshark uses the _vlans_ file to translate VLAN tag IDs into names.
570 If there is a _vlans_ file in the currently active profile folder, it is used. Otherwise, the _vlans_ file in the personal configuration folder is used.
572 Each line in this file consists of one VLAN tag ID and a describing name separated by whitespace or tab.
574 An example is:
575 ----
576 123     Server-LAN
577 2049    HR-Client-LAN
578 ----
580 The settings from this file are read in at program start or when changing
581 the active profile and are never written by Wireshark.
584 wka::
587 At program start, if there is a _wka_ file in the global configuration folder,
588 it is read.
590 The entries in this file are used to translate MAC addresses and MAC address
591 prefixes into names. The format is that of the _manuf_ file. This file is
592 distributed with Wireshark, and contains data assembled from various non IEEE
593 but respected sources.
595 The settings from this file are read in at program start and never written by Wireshark.
598 [#ChPluginFolders]
600 === Plugin folders
602 Wireshark supports plugins for various purposes.  Plugins can either be
603 scripts written in Lua or code written in C or {cpp} and compiled to
604 machine code.
606 Wireshark looks for plugins in both a personal plugin folder and a
607 global plugin folder.  Lua plugins are stored in the plugin folders;
608 compiled plugins are stored in subfolders of the plugin folders, with
609 the subfolder name being the Wireshark minor version number (X.Y). There is
610 another hierarchical level for each Wireshark plugin type (libwireshark,
611 libwiretap and codecs). So for example the location for a libwireshark plugin
612 _foo.so_ (_foo.dll_ on Windows) would be _PLUGINDIR/X.Y/epan_
613 (libwireshark used to be called libepan; the other folder names are _codecs_
614 and _wiretap_).
616 On Windows:
618 * The personal plugin folder is _%APPDATA%\Wireshark\plugins_.
620 * The global plugin folder is _WIRESHARK\plugins_.
622 On Unix-like systems:
624 * The personal plugin folder is _~/.local/lib/wireshark/plugins_.
626 [NOTE]
627 ====
628 To provide better support for binary plugins this folder changed in Wireshark 2.5.
629 It is recommended to use the new folder but *for lua scripts only* you may
630 continue to use _$XDG_CONFIG_HOME/wireshark/plugins_ for backward-compatibility.
631 This is useful to have older versions of Wireshark installed side-by-side. In case
632 of duplicate file names between old and new the new folder wins.
633 ====
635 * If you are running on macOS and Wireshark is installed as an
636 application bundle, the global plugin folder is
637 _%APPDIR%/Contents/PlugIns/wireshark_, otherwise it’s
638 _INSTALLDIR/lib/wireshark/plugins_.
640 [#ChWindowsFolder]
642 === Windows folders
644 Here you will find some details about the folders used in Wireshark on different
645 Windows versions.
647 As already mentioned, you can find the currently used folders in the “About
648 Wireshark” dialog.
650 [#ChWindowsProfiles]
652 ==== Windows profiles
654 Windows uses some special directories to store user configuration files which
655 define the “user profile”. This can be confusing, as the default directory
656 location changed from Windows version to version and might also be different for
657 English and internationalized versions of Windows.
659 [NOTE]
660 ====
661 If you’ve upgraded to a new Windows version, your profile might be kept in the
662 former location. The defaults mentioned here might not apply.
663 ====
665 The following guides you to the right place where to look for Wireshark’s
666 profile data.
668 Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, and associated server editions::
669 _C:\Users{backslash}**username**\AppData\Roaming\Wireshark_.
671 Windows XP and Windows Server 2003 footnote:historical[No longer supported by Wireshark. For historical reference only.]::
672 _C:\Documents and Settings{backslash}**username**\Application Data_. “Documents and
673 Settings” and “Application Data” might be internationalized.
675 [#ChWindowsRoamingProfiles]
677 ==== Windows roaming profiles
679 Some larger Windows environments use roaming profiles. If this is the case the
680 configurations of all programs you use won’t be saved on your local hard drive.
681 They will be stored on the domain server instead.
683 Your settings will travel with you from computer to computer with one exception.
684 The “Local Settings” folder in your profile data (typically something like:
685 _C:\Documents and Settings{backslash}**username**\Local Settings_) will not be
686 transferred to the domain server. This is the default for temporary capture
687 files.
689 [#ChWindowsTempFolder]
691 ==== Windows temporary folder
693 Wireshark uses the folder which is set by the TMPDIR or TEMP environment
694 variable. This variable will be set by the Windows installer.
696 Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, and associated server editions::
697 _C:\Users{backslash}**username**\AppData\Local\Temp_
699 Windows XP and Windows Server 2003 footnote:historical[]::
700 _C:\Documents and Settings{backslash}**username**\Local Settings\Temp_
702 // End of WSUG Appendix Files