Commit Graph

156 Commits

Author SHA1 Message Date
Pascal Quantin cd752deeac Windows: upgrade Npcap to 1.60 2021-12-09 22:41:07 +01:00
j.novak@netsystem.cz d50c666cd7 Capture Options dialog: Added configuration icon 2021-12-07 05:47:54 +00:00
João Valverde 5059c15a2c Update release notes 2021-12-03 04:40:34 +00:00
Sangeetha Jain f5dc4652fe MeshConnex (MCX): MCX packet decode logic
MCX is a feature to deliver IEEE 802.11s meshing.
2021-12-02 17:05:21 +05:30
Huang Qiangxiong 2af95cbe1b HTTP2/GRPC: support using fake headers if first HEADERS frame is missing
Add an UAT for configuring fake headers according to the server port, stream
id and direction of the long-lived stream that we start capturing packets
after it is established. That helps to parsing the DATAs captured subsequently.
A testcase also added.

close #17691
2021-11-26 17:34:23 +00:00
João Valverde 72c5efea1b dfilter: Reject invalid character escape sequences
For double quoted strings. This is consistent with single quote
character constants and the C standard. It also avoids common
mistakes where the superfluous backslash is silently suppressed.
2021-11-23 16:48:02 +00:00
João Valverde f1b10644a7 Release notes: Add back note about display filter syntax
This indicates a deprecation that was removed, that is relevant
to note for this release.
2021-11-19 10:16:02 +00:00
Gerald Combs f0b2bb7472 Docs: Clean up the release notes. 2021-11-18 18:43:33 -08:00
Filip Kågesson f9be0f0c8c HICP: Added dissector to support Host IP Configuration Protocol.
A new dissector was added to support dissection of the HICP protocol.
2021-11-16 21:43:17 +00:00
João Valverde b9f2e4b7fa Make PCRE2 a required dependency 2021-11-14 21:00:59 +00:00
João Valverde 9df5279af7 dfilter: Remove support for GRegex
PCRE2 is mature, widely used and widely available. Supporting two
different RE implementations, one of which is unmaintained, is
unnecessary and counter-productive.
2021-11-14 21:00:59 +00:00
João Valverde ed8a02af17 dfilter: Add support for PCRE2
PCRE2 is the future of PCRE. The only advantage of GRegex is that
it comes bundled with GLib, which is not an advantage at all.
PCRE2 is widely available, the GRegex abstractions layer are not a
good fit and abstract things that don't need abstracting or that we
could handle better ourselves, there are open bugs (#12997) and
maintenance is spotty at best.

GRegex comes with many of the problems of bundled code, aggravated by
the fact that it completely falls outside of our control.
2021-11-14 21:00:59 +00:00
Filip Kågesson 82fd526e96 SHICP: Added dissector to support Secure Host IP Configuration Protocol.
A new dissector was added to support dissection of the SHICP protocol.
2021-11-09 19:49:58 +00:00
João Valverde 9ca27643fa dfilter: Support more C escape sequences in string literals
Before:

  Filter: http.request.method == "\tHEAD"

  Constants:
  00000 PUT_FVALUE	"tHEAD" <FT_STRING> -> reg#1
  (...)

  Filter: http.request.method == "\uHEAD"

  Constants:
  00000 PUT_FVALUE	"uHEAD" <FT_STRING> -> reg#1
  (...)

After:

  Filter: http.request.method == "\tHEAD"

  Constants:
  00000 PUT_FVALUE	"\x09HEAD" <FT_STRING> -> reg#1
  (...)

  Filter: http.request.method == "\uHEAD"

  Constants:
  00000 PUT_FVALUE	"uHEAD" <FT_STRING> -> reg#1
  (...)
2021-10-31 20:33:31 +00:00
João Valverde f78ebe1564 dfilter: Remove deprecated support for whitespace separator in sets 2021-10-31 09:13:18 +00:00
João Valverde 2183738ef2 dfilter: Add support for comma as set separator
Deprecate the usage of significant whitespace to separate set elements
(or anywhere else for that matter). This will make the implementation
simpler and cleaner and the language more expressive and user-friendly.
2021-10-28 04:11:05 +00:00
João Valverde 31d04f9ee7 dfilter: Add synctatic sugar for "not in" test 2021-10-27 20:52:35 +00:00
Jirka Novak e880cf61d7 Flow sequence: Shows more information about various skinny messages
For many skinny messages additional information is shown next to
message. It simplifies call flow analysis.
2021-10-27 06:47:55 +00:00
Jirka Novak 35334a1f28 Skinny: Create RTP stream based on messages
When OpenReceiveChannel/OpenReceiveChannelAck and
StartMediaTransmission/StartMediaTransmissionAck messages are seen, RTP
streams are created so Wireshark decodes related UDP as RTP.

Note: Multichannel commands (e.g. OpenMultiMediaReceiveChannel) are not
processed as I have no sample to test it.
2021-10-24 07:12:24 +00:00
João Valverde 0abe10e040 dfilter: Fix "!=" relation to be free of contradictions
Wireshark defines the relation of equality A == B as
A any_eq B <=> An == Bn for at least one An, Bn.
More accurately I think this is (formally) an equivalence
relation, not true equality.

Whichever definition for "==" we choose we must keep the
definition of "!=" as !(A == B), otherwise it will
lead to logical contradictions like (A == B) AND (A != B)
being true.

Fix the '!=' relation to match the definition of equality:
  A != B <=> !(A == B) <=> A all_ne B <=> An != Bn, for
every n.

This has been the recomended way to write "not equal" for a
long time in the documentation, even to the point where != was
deprecated, but it just wasn't implemented consistently in the
language, which has understandably been a persistent source
of confusion. Even a field that is normally well-behaved
with "!=" like "ip.src" or "ip.dst" will produce unexpected
results with encapsulations like IP-over-IP.

The opcode ALL_NE could have been implemented in the compiler
instead using NOT and ANY_EQ but I chose to implement it in
bytecode. It just seemed more elegant and efficient
but the difference was not very significant.

Keep around "~=" for any_ne relation, in case someone depends
on that, and because we don't have an operator for true equality:
  A strict_equal B <=> A all_eq B <=> !(A any_ne B).
If there is only one value then any_ne and all_ne are the same
comparison operation.

Implementing this change did not require fixing any tests so it
is unlikely the relation "~=" (any_ne) will be very useful.

Note that the behaviour of the '<' (less than) comparison relation
is a separate, more subtle issue. In the general case the definition
of '<' that is used is only a partial order.
2021-10-24 06:55:54 +00:00
Jirka Novak cf41fbd897 IAX2 Stream Analysis: Fix of mean jitter calculation
Calculation was using incorrect variable so calculation was incorrect.
Patch corrected this mistake.
2021-10-23 12:01:54 +00:00
Martin Mayer d4cad23807 Added Allied Telesis Loop Detection Frames 2021-10-20 06:49:44 +00:00
João Valverde a975d478ba dfilter: Require double-quoted strings with "matches"
Matches is a special case that looks on the RHS and tries
to convert every unparsed value to a string, regardless
of the LHS type. This is not how types work in the display
filter. Require double-quotes to avoid ambiguity, because
matches doesn't follow normal Wireshark display filter
type rules. It doesn't need nor benefit from the flexibility
provided by unparsed strings in the syntax.

For matches the RHS is always a literal strings except
if the RHS is also a field name, then it complains of an
incompatible type. This is confusing. No type can be compatible
because no type rules are ever considered. Every unparsed value is
a text string except if it happens to coincide with a field
name it also requires double-quoting or it throws a syntax error,
just to be difficult. We could remove this odd quirk but requiring
double-quotes for regular expressions is a better, more elegant
fix.

Before:
  Filter: tcp matches "udp"

  Constants:
  00000 PUT_PCRE	udp -> reg#1

  Instructions:
  00000 READ_TREE		tcp -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_MATCHES	reg#0 matches reg#1
  00003 RETURN

  Filter: tcp matches udp

  Constants:
  00000 PUT_PCRE	udp -> reg#1

  Instructions:
  00000 READ_TREE		tcp -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_MATCHES	reg#0 matches reg#1
  00003 RETURN

  Filter: tcp matches udp.srcport
  dftest: tcp and udp.srcport are not of compatible types.

  Filter: tcp matches udp.srcportt

  Constants:
  00000 PUT_PCRE	udp.srcportt -> reg#1

  Instructions:
  00000 READ_TREE		tcp -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_MATCHES	reg#0 matches reg#1
  00003 RETURN

After:
  Filter: tcp matches "udp"

  Constants:
  00000 PUT_PCRE	udp -> reg#1

  Instructions:
  00000 READ_TREE		tcp -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_MATCHES	reg#0 matches reg#1
  00003 RETURN

  Filter: tcp matches udp
  dftest: "udp" was unexpected in this context.

  Filter: tcp matches udp.srcport
  dftest: "udp.srcport" was unexpected in this context.

  Filter: tcp matches udp.srcportt
  dftest: "udp.srcportt" was unexpected in this context.

The error message could still be improved.
2021-10-17 22:53:36 +00:00
Brian Sipos c36ce0b01b TCPCLv4: Update TCPCL dissector to include version 4 from dtn-wireshark
Some enhancements and visual fixes to version 3 dissector are also included.
2021-10-17 14:09:07 +00:00
João Valverde c484ad0e5c dfilter: Don't try to parse byte arrays as strings
It won't work with embedded null bytes so don't try. This is
not an additional restriction, it just removes a hidden failure
mode. To support matching embedded NUL bytes we would have
to use an internal string representation other than
null-terminated C strings (which doesn't seem very onerous with
GString).

Before:
  Filter: http.user_agent == 41:42:00:43

  Constants:
  00000 PUT_FVALUE	"AB" <FT_STRING> -> reg#1

  Instructions:
  00000 READ_TREE		http.user_agent -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_EQ		reg#0 == reg#1
  00003 RETURN

After:
  Filter: http.user_agent == 41:42:00:43

  Constants:
  00000 PUT_FVALUE	"41:42:00:43" <FT_STRING> -> reg#1

  Instructions:
  00000 READ_TREE		http.user_agent -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_EQ		reg#0 == reg#1
  00003 RETURN
2021-10-15 13:06:51 +01:00
João Valverde 144dc1e2ee dfilter: Use the same semantic rules for protocols and bytes
FT_PROTOCOL and FT_BYTES are the same semantic type, but one is
backed by a GByteArray and the other by a TVBuff. Use the same
semantic rules to parse both. In particular unparsed strings
are not converted to literal strings for protocols.

Before:
  Filter: frame contains 0x0000

  Constants:
  00000 PUT_FVALUE	30:78:30:30:30:30 <FT_PROTOCOL> -> reg#1

  Instructions:
  00000 READ_TREE		frame -> reg#0
  00001 IF-FALSE-GOTO	3
  00002 ANY_CONTAINS	reg#0 contains reg#1
  00003 RETURN

  Filter: frame[5:] contains 0x0000
  dftest: "0x0000" is not a valid byte string.

After:
  Filter: frame contains 0x0000
  dftest: "0x0000" is not a valid byte string.

  Filter: frame[5:] contains 0x0000
  dftest: "0x0000" is not a valid byte string.

Related to #17634.
2021-10-15 13:06:51 +01:00
Gerald Combs 643fbe52ae Docs: Use Asciidoctor to copy ws.css.
Use the `copycss` attribute in the release notes and FAQ to copy ws.css
to the right location.
2021-10-12 01:02:53 +00:00
Brian Sipos ce0592514c BPv7: Add Bundle Protocol version 7 and BPSec dissectors from dtn-wireshark 2021-10-10 13:27:17 +00:00
Chuck Craft 9371f102c8 NEWS: tshark folders; WSUG and download page links 2021-10-08 05:54:12 +00:00
Stig Bjørlykke 25ca031f53 Release notes: Add note about improved Reload Lua Plugins
Add a note about improved Reload Lua Plugins.
2021-10-04 09:40:42 +00:00
Brian Sipos abd0f1183f COSE dissector from dtn-wireshark project 2021-09-29 08:51:13 +00:00
Stig Bjørlykke 36977acfbf Qt: Store Import Hex Dump settings
Store all user specified values from the "Import from Hex Dump"
dialog in a profile import_hexdump.json file.

Set default ExportPDU dissector to "data".
Fixed a minor typo in a help text.
2021-09-18 18:20:57 +00:00
Pascal Quantin 530ee0b365 Windows: upgrade Npcap to 1.55 2021-09-07 23:18:19 +02:00
Peter van der Perk e0f7940d29 Fix broken release notes caused by !3048 2021-08-31 08:59:10 +00:00
Dr. Lars Völker e446bbc3e7 ISO10681: Adding support for ISO10681 (FlexRay ISO TP)
This patch adds support for the ISO 10681-2 protocol, which is similar
to the ISO 15765-2 protocol (see packet-iso15765.c).

This patch also add support for registering combined FlexRay IDs to
register the new dissector.
2021-08-31 07:37:59 +00:00
Gerald Combs b7ff41703e Build: 3.5.0.
[skip ci]
2021-08-27 10:17:38 -07:00
Gerald Combs 5fcd5f3b9f Release notes: Various updates.
Add 64-bit PortableApps and macOS Arm items. Fix an issue from a
previous commit. Add new dissectors.
2021-08-27 01:01:51 +00:00
Alexis La Goutte 2ee06d3fef Qt: Add Turkey translation
Thanks to Serkan ÖNDER
2021-08-25 14:06:50 +00:00
Martin Mathieson 927690e883 Fix some docbook spellings. 2021-08-20 10:43:01 +00:00
Thomas Dreibholz a104403dad
Added HiPerConTracer dissector. 2021-08-19 16:13:15 +02:00
Jirka Novak 6672f1eb2b Updated release notes 2021-08-18 19:27:10 +00:00
Gerald Combs 7e7ef43b04 Release notes: Add an item about GSoD 2020. 2021-07-30 20:23:14 +00:00
Dr. Lars Völker 796819c955 BLF: Support for BLF file format
This patch adds first support for the BLF file format.
2021-07-16 07:37:43 +00:00
Dr. Lars Völker 95dc4f52bc LIN: Adding support for LIN dissection
This patch adds support for LIN (Local Interconnect Network) as
well as support for:
- Signal PDUs on LIN
- ISO 15765 (ISO TP) on LIN
- TECMP transported LIN is handle like LIN

LIN is a simple automotive fieldbus to connect for example simple
sensors and actuators to an electronic control unit.
2021-07-14 09:31:06 +00:00
Pascal Quantin fa21433c35 Windows: upgrade Npcap to 1.50 2021-06-26 13:16:49 +02:00
Stig Bjørlykke 2b29269f5d tshark: Add option to export TLS session keys
Add a new option --export-tls-session-keys <keyfile> to tshark
to export TLS session keys.
2021-06-06 13:32:40 +02:00
João Valverde 85c257431f dfilter: Add support for raw strings
Add support for a literal string specification copied from Python
raw strings[1].

Raw string literals are enclosed with r"..." or R"...". Double quotes
can be include in the string but they must be escaped with backslash.
In escape sequences backslashes are preserved in the final result.

So for example the string "a\\\"b" is the same as r"a\"b".

r"\\\a" is the same as "\\\\\\a".

Raw strings should be used for convenience wherever a regular expression
is used in a display filter expression.

[1]https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals
2021-06-05 02:46:40 +01:00
João Valverde 49e9ddbd28 release notes: Indent some paragraphs. 2021-05-30 10:38:40 +01:00
John Thacker 4371474cc3 ip: Reassemble across VLANs for publicly routable IPv4 addresses
Default to taking the VLAN ID into account when reassembling only
for private IPv4 addresses as defined by RFC 1918 and for link-local
addresses. Otherwise, do not take the VLAN ID into account unless
the "Enable stricter conversation tracking heuristics" preference
is enabled. Fixes #14356.
2021-05-25 20:09:25 -04:00
Martin Mathieson 3248e2a759 Add E2AP ORAN 1.00 dissector 2021-05-25 13:29:47 +01:00