aboutsummaryrefslogtreecommitdiffstats
path: root/doc
AgeCommit message (Collapse)AuthorFilesLines
2022-10-31dfilter: Add support for raw (bytes) addressing modeJoão Valverde1-0/+20
This adds new syntax to read a field from the tree as bytes, instead of the actual type. This is a useful extension for example to match matformed strings that contain unicode replacement characters. In this case it is not possible to match the raw value of the malformed string field. This extension fills this need and is generic enough that it should be useful in many other situations. The syntax used is to prefix the field name with "@". The following artificial example tests if the HTTP user agent contains a particular invalid UTF-8 sequence: @http.user_agent == "Mozill\xAA" Where simply using "http.user_agent" won't work because the invalid byte sequence will have been replaced with U+FFFD. Considering the following programs: $ dftest '_ws.ftypes.string == "ABC"' Filter: _ws.ftypes.string == "ABC" Syntax tree: 0 TEST_ANY_EQ: 1 FIELD(_ws.ftypes.string <FT_STRING>) 1 FVALUE("ABC" <FT_STRING>) Instructions: 00000 READ_TREE _ws.ftypes.string <FT_STRING> -> reg#0 00001 IF_FALSE_GOTO 3 00002 ANY_EQ reg#0 == "ABC" <FT_STRING> 00003 RETURN $ dftest '@_ws.ftypes.string == "ABC"' Filter: @_ws.ftypes.string == "ABC" Syntax tree: 0 TEST_ANY_EQ: 1 FIELD(_ws.ftypes.string <RAW>) 1 FVALUE(41:42:43 <FT_BYTES>) Instructions: 00000 READ_TREE @_ws.ftypes.string <FT_BYTES> -> reg#0 00001 IF_FALSE_GOTO 3 00002 ANY_EQ reg#0 == 41:42:43 <FT_BYTES> 00003 RETURN In the second case the field has a "raw" type, that equates directly to FT_BYTES, and the field value is read from the protocol raw data.
2022-10-18README.plugins: Fix version variablesUli Heilmeier1-5/+5
Fixes: #18507
2022-10-10epan: Mark tvb_get_const_stringz() as deprecatedJoão Valverde1-14/+0
The function tvb_get_const_stringz() does not check for a string encoding and returns a pointer to a byte array. For this reason it should not be used. Prefer other functions that return a valid UTF-8 string from a source encoding or use tvb_get_ptr() to fetch a byte pointer.
2022-10-07falcodump: Prefill the Cloudtrail profile and region fields.Gerald Combs1-0/+3
Make the cloudtrail-aws-profile and cloudtrail-aws-region settings prefilled selection lists. Make them editable as well.
2022-10-07Qt+extcap: Add editable extcap selectors.Gerald Combs1-0/+1
Add an "editselector" argument type, which lets the user override a predefined selection list with a custom value.
2022-10-07wslua: Use wiretap introspectionJoão Valverde1-14/+0
2022-09-29falcodump: Add support for selection options.Gerald Combs1-0/+11
If a plugin has an "enum" + array in its configuration, convert it to a selector option. Start adding plugin sections to the falcodump man page.
2022-09-28wslog: Add option to make a list of domains fatalJoão Valverde1-2/+5
Add a command line option --log-fatal-domains= and environment variable WIRESHARK_LOG_FATAL_DOMAINS that aborts the programs if a domain in the list is logged to. Negative matches for fatal log domains not implemented for now, pending a relevant use-case.
2022-09-27GTPv2: Add Service Response Time statistics, similar to GTPv1John Thacker1-2/+11
Add a Service Response Time table for GTPv2, similar to that for GTPv1. Update the tshark docs to mention it.
2022-09-27README.Developer: Add notes about string encoding and best-practicesJoão Valverde1-0/+26
2022-09-10Dissector names are not protocol names.Guy Harris1-7/+8
A given protocol's packet format may depend, for example, on which lower-level protocol is transporting the protocol in question. For example, protocols that run atop both byte-stream protocols such as TCP and TLS, and packet-oriented protocols such as UDP or DTLS, might begin the packet with a length when running atop a byte-stream protocol, to indicate where this packet ends and the next packet begins in the byte stream, but not do so when running atop a packet-oriented protocol. Dissectors can handle this in various ways: For example, the dissector could attempt to determine the protocol over which the packet was transported. Unfortunately, many of those mechanisms do so by fetching data from the packet_info structure, and many items in that structure act as global variables, so that, for example, if there are two two PDUs for protocol A inside a TCP segment, and the first protocol for PDU A contains a PDU for protocol B, and protocol B's dissector, or a dissector it calls, modifies the information in the packet_info structure so that it no longer indicates that the parent protocol is TCP, the second PDU for protocol A might not be correctly dissected. Another such mechanism is to query the previous element in the layers structure of the packet_info structure, which is a list of protocol IDs. Unfortunately, that is not a list of earlier protocols in the protocol stack, it's a list of earlier protocols in the dissection, which means that, in the above example, when the second PDU for protocol A is dissected, the list is {...,TCP,A,B,...,A}, which means that the previous element in the list is not TCP, so, again, the second PDU for protocol A will not be correctly dissected. An alternative is to have multiple dissectors for the same protocol, with the part of the protocol that's independent of the protocol transporting the PDU being dissected by common code. Protocol B might have an "over a byte-stream transport" dissector and an "over a packet transport" dissector, with the first dissector being registered for use over TCP and TLS and the other dissector being registered for use over packet protocols. This mechanism, unlike the other mechanisms, is not dependent on information in the packet_info structure that might be affected by dissectors other than the one for the protocol that transports protocol B. Furthermore, in a LINKTYPE_WIRESHARK_UPPER_PDU pcap or pcapng packet for protocol B, there might not be any information to indicate the protocol that transports protocol B, so there would have to be separate dissectors for protocol B, with separate names, so that a tag giving the protocol name would differ for B-over-byte-stream and B-over-packets. So: We rename EXP_PDU_TAG_PROTO_NAME and EXP_PDU_TAG_HEUR_PROTO_NAME to EXP_PDU_TAG_DISSECTOR_NAME and EXP_PDU_TAG_HEUR_DISSECTOR_NAME, to emphasize that they are *not* protocol names, they are dissector names (which has always been the case - if there's a protocol with that name, but no dissector with that name, Wireshark will not be able to handle the packet, as it will try to look up a dissector given that name and fail). We fix that exported PDU dissector to refer to those tags as dissector names, not protocol names. We update documentation to refer to them as DISSECTOR_NAME tags, not PROTO_NAME tags. (If there is any documentation for this outside the Wireshark source, it should be updated as well.) We add comments for calls to dissector_handle_get_dissector_name() where the dissector name is shown to the user, to indicate that it might be that the protocol name should be used. We update the TLS and DTLS dissectors to show the encapsulated protocol as the string returned by dissector_handle_get_long_name(); as the default is "Application Data", it appeaers that a descriptive name, rather than a short API name, should be used. (We continue to use the dissector name in debugging messages, to indicate which dissector was called.)
2022-09-01CMake: Split more Wireshark/Logray variables.Gerald Combs1-2/+6
Split our macOS application bundle variables into Wireshark- and Logray-specific ones. Make sure Logray's PkgInfo and CFBundleSignature match.
2022-08-29extcap: Add falcodump.Gerald Combs2-0/+132
Add an extcap that fetches a scap from a Falco/libsinsp plugin. Tested using the cloudtrail plugin.
2022-08-23Qt6: Adapt various docsRoland Knall1-2/+2
2022-08-19Fix some spelling errorsMartin Mathieson1-3/+3
2022-08-15docs: Update the sample dissectorJohn Thacker1-33/+61
Update the sample dissector for some best practices, and avoid some deprecated behavior. Use register_protocol instead of creating an anonymous dissector handle, so that Lua, Export PDU, custom User DLT disection, etc. can find it. (See #5612) Use auto preferences and prefer port ranges when possible (See #14319)
2022-08-10sshdump: add option to select dumpcap as remote capture commandJaap Keuter1-12/+34
2022-08-08Docs: Clean up some Python references.Gerald Combs3-8/+5
Make sure we captitalize Python and use its HTTPS URL.
2022-08-02epan: Refactor floating point display typesJoão Valverde1-0/+6
Remove the redundant BASE_FLOAT field display type. The name BASE_FLOAT is meaningless and the value aliased to BASE_NONE. Require BASE_NONE instead of BASE_FLOAT (corresponding to the printf() %g format). Add new float display types using BASE_DEC, BASE_HEX and BASE_EXP corresponfing to %f, %a and %e respectively. Add support for BASE_CUSTOM with floats.
2022-07-31Docs: extcap man page fixups.Gerald Combs1-27/+11
2022-07-29Docs: Fix our man page dependencies.Gerald Combs1-2/+0
Dependencies need to be set via add_custom_command.
2022-07-26doc: Update README.display_filterStig Bjørlykke1-9/+2
Update fvalue_t definition in README.display_filter.
2022-07-23docbook: Port make-wsluarm to Python3Gerald Combs1-10/+10
Port the script that creates docbook/wsluarm_src/*.adoc to Python3. Ping #18152.
2022-07-22ciscodump: Added support for IOS XE and ASAJirka Novak1-57/+157
Changes: - The tool now recognizes which software is running on a device - IOS, IOS XE or ASA. Based on it, it uses correct sequence of commands to setup capture, read captured packets and clear the capture. - The tool reads packets on the fly so you don't have to wait till --remote-count of packets is reached. - The tool reads timestamps from capture on the device for IOS and ASA (on IOS-XE, there is no timestamp in dump). - Except Windows platform the tool handles early stop of capture on the device and clear of capture buffer on the device (it finish the capture). - There are special interface names to allow the tool to generate specific capture types. - Documentation updated. Closes #17672.
2022-07-13ExtcapExample: Harden and alternate mac addressRoland Knall1-8/+35
Harden the code a little and alternate the mac address to allow the code to be used for testing conversation and endpoint dialog. Also transmit integer values not as ascii representations and include a data packet that allows for reassembly to be tested
2022-07-06Fix some spellings.Martin Mathieson1-1/+1
2022-06-27Minor Python3 script fixups.Gerald Combs1-1/+1
Make some scripts executable and use the shebang line recommended at https://docs.python.org/3/using/unix.html#miscellaneous
2022-06-27wslua: Port make-init-lua to Python3Gerald Combs1-2/+2
Port the script that creates init.lua to Python3. The generated init.lua removes one newline and adds another, otherwise the output is identical to the Perl version. Ping #18152.
2022-06-27wslua: Port make-taps to Python3Gerald Combs1-6/+5
Port the script that creates taps_wslua.c and taps.txt to Python3. The generated taps_wslua.c has one less newline, otherwise the output is identical to the Perl version. Make the "taps" configuration file an ConfigParser / .ini file. Ping #18152.
2022-06-25dfilter: Change boolean string representationJoão Valverde1-6/+9
Use "True" or "TRUE" instead of "true" and remove case insensivity. Same for false. This should serve to differentiate booleans a bit more from protocol names, which should be using lower-case.
2022-06-24Doc: Port make-authors-short to Python3.Gerald Combs3-42/+52
Port the script that creates AUTHORS-SHORT to Python3. Ping #18152.
2022-06-24wslua: Port epan/wslua/make-reg.py to Python3Moshe Kaplan1-6/+6
Port the script that creates declare_wslua.h and register_wslua.c to Python3. Ping #18152.
2022-06-21Docs: Update the ftype description list in wireshark-filter(4).Gerald Combs1-5/+10
Update a couple of ftype descriptions and update the list in the wireshark-filter man page.
2022-06-21Docs: Updates to wireshark-filter manpageJoão Valverde1-7/+37
2022-06-17plugins.example: Fix an installation pathJoão Valverde1-2/+2
2022-06-16editcap/mergecap: swap 'v'|'V' options to match other CLI utilitiesChuck Craft2-21/+30
Closes #18134
2022-06-12tshark/docs: add -X read_format: example to view file internalsChuck Craft1-3/+8
2022-06-09Docs: Update README.dissector for string encodingsJoão Valverde1-3/+3
2022-06-08Docs: Note that display filter layer numbers start at 1.Gerald Combs1-5/+5
2022-06-08Docs: Another display filter regex updateJoão Valverde1-1/+1
2022-06-08Docs: Update display filter manual page to PCRE2João Valverde1-3/+3
2022-06-02wiretap: merge support for IDBs in the middle of a fileJohn Thacker1-1/+4
Support merging files with IDBs in the middle of the file. Use wtap_get_next_interface_description when doing the initial list of interfaces so that we can correctly get IDBs later. Note that while IDB merge modes "any" and "none" work as expected, the default "all" mode can't really work for IDBs in the middle of the file without adding a two-pass mode. In "all" mode, if there are any such IDBs, merge them with duplicates iff the interfaces at the beginning of the files were merged. Related to #15502 and #16542.
2022-05-23epan: Allow conversations based on arbitrary element lists.Gerald Combs1-13/+49
Add conversation_new_full and find_conversation_full, which take arbitrary element lists instead of fixed addresses and ports. Update the comments in conversation.h to be more Doxygen-conformant. Update README.dissector. Use the new functionality to add initial conversation support to the Falco Bridge dissector.
2022-05-12docs: adoc migration bolding typos; Windows pipe name syntaxChuck Craft4-6/+6
2022-05-12text2pcap: Switch default file format to pcapngJohn Thacker1-6/+2
For the upcoming 4.0 release, switch the default file format for text2pcap to pcapng from pcap, to match other tools and the GUI behavior. Update the documentation and release notes appropriately. Deprecate the old -n flag; since pcapng is the default this has no effect. Changing the output capture file format is supported with the -F option, consistent with the other command line tools. Related to #18009.
2022-05-12dfilter: Add support for universal quantifiersJoão Valverde1-0/+10
Adds the keywords "any" and "all" to implement the quantification to any existing relational operator. Filter: all tcp.port in {100, 2000..3000} Syntax tree: 0 ALL TEST_IN: 1 FIELD(tcp.port) 1 SET(#2): 2 FVALUE(100 <FT_UINT16>) 2 FVALUE(2000 <FT_UINT16>) .. FVALUE(3000 <FT_UINT16>) Instructions: 00000 READ_TREE tcp.port -> reg#0 00001 IF_FALSE_GOTO 5 00002 ALL_EQ reg#0 === 100 <FT_UINT16> 00003 IF_TRUE_GOTO 5 00004 ALL_IN_RANGE reg#0 in { 2000 <FT_UINT16> .. 3000 <FT_UINT16> } 00005 RETURN
2022-05-05ETW: Extract IP packets from Windows event traceOdysseus Yang1-2/+3
With this change, Wireshark will be enhanced to display IP packets from an event trace logfile or an event trace live session.
2022-04-28docs: Update reference to minimum versions of GLib and QtJohn Thacker1-1/+1
2022-04-28sshdump: Update doc for openssh key noteRoland Knall1-2/+2
Add a note, that the key value pair format has to be openssh format Fixes #18063
2022-04-26dfilter: Add syntax to match specific layers in the protocol stackJoão Valverde1-0/+18
Add support to display filters for matching a specific layer within a frame. Layers are counted sequentially up the protocol stack. Each protocol (dissector) that appears in the stack is one layer. LINK-LAYER#1 <-> IP#1 <-> TCP#1 <-> IP#2 <-> TCP#2 <-> etc. The syntax allows for negative indexes and ranges with the usual semantics for slices (but note that counting starts at one): tcp.port#[2-4] == 1024 Matches layers 2 to 4 inclusive. Fixes #3791.