Commit graph

89 commits

Author SHA1 Message Date
Guy Harris
49157b5f2c It seems pretty clear that a PDU_AUTH3 really is an AUTH3 PDU, and we
know what it is (a PDU for the third stage in a 3-way authentication
handshake, as is done with NTLMSSP authentication, for example) - get
rid of the question mark after "AUTH3".

svn path=/trunk/; revision=6746
2002-12-05 18:26:10 +00:00
Guy Harris
a56c79201d Arguments to hash routines are gconstpointer's; assign them to const
pointers.

The first argument to "sscanf()" is a "const char *"; don't cast const
pointers to "char *" when passing them to "sscanf()".

Assign the result of "tvb_get_ptr()" to const pointers, not non-const
pointers.

Make the "pdata" argument to various DCE routines a const pointer.

svn path=/trunk/; revision=6688
2002-11-28 03:57:50 +00:00
Guy Harris
262744d2b2 Dissect NTLMSSP authentication verifiers, as per lkcl's "DCE/RPC over
SMB" book.

svn path=/trunk/; revision=6598
2002-11-10 09:38:22 +00:00
Guy Harris
3b71004a61 In connection-oriented DCE RPC, the authentication data are credentials
only in bind, bind_ack, alter_context, alter_context_response, and auth3
PDUs; they're a verifier of some sort in other PDUs.  The verifier
appears to start with an OID for the real authentication mechanism if
the authentication type is SPNEGO.

svn path=/trunk/; revision=6563
2002-11-05 21:41:27 +00:00
Guy Harris
ee0c06e961 Use the full name of the "hf_dcerpc_obj_id" field when formatting the
protocol tree item for it.

Fix a typo.

svn path=/trunk/; revision=6555
2002-11-03 20:34:54 +00:00
Ronnie Sahlberg
d5e3008fff From Jean-Baptiste Marchand update the proto_tree_add_ for UUIDs in the
dcerpc layer (and the subdissectors using dissect_ndr_uuid_t()) so that
it is possible to use display filters on these items.

svn path=/trunk/; revision=6547
2002-11-02 22:14:21 +00:00
Guy Harris
35c1970720 From Ronnie Sahlberg: Ethereal support for DCERPCSTAT.
svn path=/trunk/; revision=6499
2002-10-25 01:08:49 +00:00
Guy Harris
07d0032f1c Add a "fragment_add_seq_next()" to reassemble fragments that don't have
sequence numbers or offsets and are thus assumed to be received in order
with no duplicates or dropped fragments (e.g., for NetBIOS Frame, where
802.2 LLC guarantees in-order delivery to NetBIOS with no duplicates or
dropped fragments).

"show_fragment_tree()' and "show_fragment_seq_tree()" don't modify the
"fragment_items" to which the "fit" argument points, so make that
argument a "const fragment_items *".

Make all the "fragment_items" tables "static" (as they're not used
outside the modules defining them) and "const" (as they're not
modified).

Add support for reassembly of NetBIOS fragmented requests and responses.

Get rid of an unnecessary include of "packet-tr.c" in the NetBIOS
dissector, and make its table of dissection function pointers static.

Fix some typos in the AppleTalk and NetBIOS dissectors.

svn path=/trunk/; revision=6491
2002-10-24 06:17:36 +00:00
Guy Harris
a71d1d910e From Ronnie Sahlberg: add a tap for statistics for DCERPC interfaces.
svn path=/trunk/; revision=6479
2002-10-23 03:49:13 +00:00
Guy Harris
abbd3e0dea From Ronnie Sahlberg: track and display the time between requests and
replies for DCERPC similar to what is already done for ONC-RPC.

svn path=/trunk/; revision=6465
2002-10-22 00:59:25 +00:00
Ronnie Sahlberg
8ca1d857f6 From Jaime Fournier: updates to dcerpc conversation manager
svn path=/trunk/; revision=6339
2002-09-26 06:13:08 +00:00
Guy Harris
3b0ab19194 Dissect the autentication verifier for Kerberos 5 authentication in
connectionless PDUs.

svn path=/trunk/; revision=6240
2002-09-09 22:11:33 +00:00
Tim Potter
0e5cdab1da Auth type 8 is NETLOGON secure channel used for BDC replication.
svn path=/trunk/; revision=6230
2002-09-08 12:04:42 +00:00
Ronnie Sahlberg
957f38e57c From Ulf Lamping, support for ieee float and double types in the dcerpc
dissectors.

svn path=/trunk/; revision=6170
2002-09-03 08:39:16 +00:00
Tim Potter
795a06fa0d snego -> spnego
svn path=/trunk/; revision=6138
2002-08-30 05:13:45 +00:00
Jörg Mayer
7c4176d868 Removed trailing whitespaces from .h and .c files using the
winapi_cleanup tool written by Patrik Stridvall for the wine
project.

svn path=/trunk/; revision=6117
2002-08-28 21:04:11 +00:00
Tim Potter
66bc3e597f These guys got lost in a merge. Actually call the gssapi dissector from
the relevant parts of the SMB and DCERPC dissectors.

svn path=/trunk/; revision=6066
2002-08-22 20:04:55 +00:00
Tim Potter
60e4ca9c4f Moved the generic true_false_string saying "Set", "Not set" into
epan/packet.c

It was cut and pasted into seven other dissectors!

svn path=/trunk/; revision=6052
2002-08-21 21:25:23 +00:00
Tim Potter
a82851086b Display the protocol name for the UUID in the COL_INFO field if we
know it.  This reduces clutter in the top pane considerably.

svn path=/trunk/; revision=5985
2002-08-13 07:25:36 +00:00
Jörg Mayer
173fe5aef4 Replace the types from sys/types.h and netinet/in.h by their glib.h
equivalents for the toplevel directory. The removal of winsock2.h will
hopefully not cause any problems under MSVC++, as those files using
struct timeval still include wtap.h, which still includes winsock2.h.

svn path=/trunk/; revision=5932
2002-08-02 23:36:07 +00:00
Guy Harris
e9310b2f14 For connection-oriented DCE RPC, show the stub data if we can't actually
do anything else with a request or reply (e.g., because we haven't seen
the bind request).

svn path=/trunk/; revision=5904
2002-07-25 21:30:58 +00:00
Tim Potter
202b8793e8 Added another authentication service for Snego.
svn path=/trunk/; revision=5858
2002-07-11 04:46:32 +00:00
Guy Harris
23a0d7e548 Put back the code to show the authentication data as "Auth Data"; call
it if we don't show it as NTLMSSP.

Use #defines for the authentication protocols.

svn path=/trunk/; revision=5853
2002-07-10 06:16:14 +00:00
Tim Potter
7ad8ddcc46 Reordered some boolean fields to be consistent with the rest of ethereal.
svn path=/trunk/; revision=5850
2002-07-10 02:59:38 +00:00
Tim Potter
8d4650823d Dissector for DCERPC auth type == 10 (NTLMSSP) from
dheitmueller@netilla.com.

svn path=/trunk/; revision=5848
2002-07-09 20:49:27 +00:00
Guy Harris
9f405c5703 Put the code to reassemble fragmented connection-oriented and
connectionless DCE RPC PDUs into common routines, and call those
routines when dissecting DCE RPC requests and responses.

Get rid of arguments to "dcerpc_try_handoff()" whose values are also in
the "dcerpc_info" structure pointed to by its "info" argument.

svn path=/trunk/; revision=5757
2002-06-24 09:23:39 +00:00
Tim Potter
6d6dce305d Change each DCERPC dissector to pass in a hf value on initialisation
for a value_string that corresponds to that dissectors opnums.  Pass
in -1 if no such table is available.

svn path=/trunk/; revision=5749
2002-06-24 00:03:18 +00:00
Guy Harris
5f8f311188 From Jaime Fournier: handle DCE RPC connectionless CANCEL PDUs with no
body.

svn path=/trunk/; revision=5730
2002-06-22 01:30:54 +00:00
Guy Harris
5c29a6c760 Don't hand off the stub body of a Fault PDU to the subdissector for the
protocol.

svn path=/trunk/; revision=5704
2002-06-19 10:06:02 +00:00
Guy Harris
309f192e02 Dissect the bodies of some additional PDU types.
Show presentation context negotiation results and rejection reasons, PDU
rejection reasons, and rejection status codes symbolically.  Show the
presentation context negotiation rejection reason only if there was a
rejection, and, if so, show it in the Info column as well as the
protocol tree.

Show more fields in the Info column.

Show the packet type in decimal in the protocol tree - it's shown as
decimal in the Info column and the values are shown as decimal in the
DCE RPC 1.1 spec.

Show the sequence number for connectionless PDUs as decimal in the
protcool tree - it's snown as decimal in the Info column, and the call
ID for connection-oriented PDUs is shown as decimal in the protocol
tree.

svn path=/trunk/; revision=5701
2002-06-19 08:34:38 +00:00
Guy Harris
dbbeac5f68 There's no more need for separate request and response reassembly hash
tables for connectionless PDUs than for connection-oriented PDUs; just
have one connectionless PDU reassembly hash table.

Get rid of unnecessary tests of "dcerpc_reassemble" - the code to handle
requests and responses was

	if (!dcerpc_reassemble || packet not fragmented || frame is short)
		don't reassemble;
	else if (dcerpc_reassemble)
		reassemble

but if we go into the "else" clause we know that all three conditions in
the "if" are false, including "!dcerpc_reassemble", so we know
"dcerpc_reassemble" is true.

Set "pinfo->fragmented" based on whether the PDU being dissected is an
unreassembled first fragment or not.

Put a "Fragment data" item into the protocol tree for all fragments.

Properly maintain the offset when dissecting the header of a
connectionless PDU, even if we aren't building a protocol tree.

"fd_head->datalen" is bogus for sequence-number-based reassembly; use
"fd_head->len" instead.

svn path=/trunk/; revision=5695
2002-06-18 06:11:42 +00:00
Guy Harris
b0dce85799 The offset of the authentication information in a connectionless PDU is
the fragment length *plus the offset of the beginning of the fragment
data*, not just the fragment length.

svn path=/trunk/; revision=5694
2002-06-18 05:06:44 +00:00
Guy Harris
5cb1f7c75c Add support for reassembly of fragmented connectionless PDUs.
Don't try to add a fragment to a reassembly operation if we don't have
all of the stub data (because the frame is short, or because it's part
of a packet fragmented at a layer below RPC and not reassembled).

Put an entry into the protocol tree for the fragment data of the last
fragment.

svn path=/trunk/; revision=5688
2002-06-17 01:11:00 +00:00
Guy Harris
879107efe1 Add #defines for the bits in the flag fields, and a macro to test
whether a connection-oriented PDU is fragmented or not.

Clean up the handling of fragmented connection-oriented PDUs (the code
to handle fragmented PDUs can assume that it is not the case that both
PFC_FIRST_FRAG and PFC_LAST_FRAG are set, as that's an unfragmented
PDU).  Put an entry into the protocol tree for the fragment data in
fragmented PDUs.

For fragmented connectionless PDUs, don't hand the payload of any
fragment other than the first fragment to the subdissector.

svn path=/trunk/; revision=5687
2002-06-17 00:04:49 +00:00
Guy Harris
4f9508837a Add "show_fragment_seq_tree()", which is like "show_fragment_tree()",
but for stuff reassembled with "fragment_add_seq()" or
"fragment_add_seq_check()".

Add a "fragment tag" string to the "fragment_items", so that packets
with fragmentation errors can be properly flagged as having "Illegal
fragments" or "Illegal segments" depending on the term used with the
protocol in question.

Make all the dissectors that can use "show_fragment_tree()" or
"show_fragment_seq_tree()", and don't already use them, do so.

svn path=/trunk/; revision=5644
2002-06-07 10:11:41 +00:00
Ronnie Sahlberg
31823cb851 Added show_fragment_tree() to reassemble. This function will do the common
task of creating a fregment tree for the fragmented packets.
Having this identical code to create this tree in every dissector that does
PDU reassembly is a huge waste and duplication of code.

Updated IP, SMB and DCERPC to use the new function.

svn path=/trunk/; revision=5626
2002-06-05 11:21:49 +00:00
Guy Harris
392a7dfc04 Get rid of the "data_src" member of the "frame_data" structure; put it
in the "packet_info" structure instead, as we don't need a pointer for
every single frame in the capture file, just for each frame for which we
currently have an open "epan_dissect_t".

svn path=/trunk/; revision=5614
2002-06-04 07:03:57 +00:00
Ronnie Sahlberg
259903dc66 Changed toplevel REF pointer dissection to create a subtree. Not creating a subtree was a design mistake which caused ugliness in the unicode string str dissector and in other places.
Dissectors will temporarily have less pretty output for topleve ref pointers until their output is retuned.

svn path=/trunk/; revision=5573
2002-05-27 09:50:58 +00:00
Ronnie Sahlberg
1f5cebd9fd Fix a bug for dcerpc. If we do not have reassembly of fragments enabled, only call the subdissector for the first fragment.
svn path=/trunk/; revision=5556
2002-05-25 08:37:44 +00:00
Ronnie Sahlberg
2031280796 Reassembly of fragmented DCE/RPC (only for connection oriented DCE/RPC).
svn path=/trunk/; revision=5548
2002-05-24 11:51:14 +00:00
Ronnie Sahlberg
c33e33fb7e Additions to the MAPI dissector. Function 02 for MAPI.
The function request/call are dissected but the main body of the function
in/out parameters consists of a unidimensional conformant and varying array of bytes which content is encrypted/obfuscated.
Whoever can tell me how to decrypt/unobfuscate these bytes will get
a case of VB next time in Sydney.

svn path=/trunk/; revision=5532
2002-05-23 12:23:29 +00:00
Ronnie Sahlberg
04158638ae Added extra check in the function that parses NDR pointers.
When the representation for a pointer type gets dissected, the dissector
is actually called twice. Once with conformant_run==1 and once ==0.
The idea is that when conformant_run is ==1, the ONLY bytes that will be
dissected and would be the array structure preceeding the actual data.
And the normal data and content will be dissected when conformant_run ==0.
This is to handle the case properly when conformant arrays are embedded inside
aggregated types, in which case there will be other data inserted between
these array control data, and the array content.

The check that is added will assert that no other data is actually eaten
for conformant_run==1 than just this data.
This will help debugging dcerpc dissectors.

svn path=/trunk/; revision=5412
2002-05-07 10:07:55 +00:00
Guy Harris
f7724391aa From Joerg Mayer: get rid of some unused variables and arguments, and
mark other unused arguments as such.

svn path=/trunk/; revision=5366
2002-05-02 21:47:47 +00:00
Tim Potter
72942ecf6f Changed COL_INFO string from 'rqst FOO(...)' to 'FOO request' as per
discussion on dev list.

svn path=/trunk/; revision=5299
2002-04-30 01:43:12 +00:00
Guy Harris
9a80f0a521 Removal (or, at least, #ifdeffing out) of unused variables and
functions, from David Frascone.

svn path=/trunk/; revision=5288
2002-04-29 08:20:18 +00:00
Guy Harris
ab96c5694e Frame numbers are unsigned, and 0 is not a valid frame number; make the
frame number arguments, and elements in data structures, unsigned,
display them with "%u" rather than "%d", and use 0, rather than -1, as
"not known".

svn path=/trunk/; revision=5223
2002-04-22 09:43:03 +00:00
Guy Harris
29607a5107 For DCE RPC requests and replies, put an item into the protocol tree for
the sub-protocol containing the actual operation number (which isn't
necessarily the operation number in a connectionless reply's PDU;
sometimes the operation number in a connectionless reply appears to be
garbage, and it's not what we use to dissect the reply in any case), and
also giving the name of the operation, if we know it.

Show the authentication data in connectionless PDUs, if present, as an
item in the protocol tree.

svn path=/trunk/; revision=5002
2002-03-22 09:44:58 +00:00
Guy Harris
030cea2057 From Todd Sabin: set the tvbuff length of the stub data for
connectionless calls to the fragment length.

Add value_string tables for authentication protocol and level values.

Show the authentication protocol in decimal in connectionless PDUs, just
as we do in connection-oriented PDUs.

Get the authentication level from connection-oriented request and reply
PDUs and, if it's DCE_C_AUTHN_LEVEL_PKT_PRIVACY, don't hand the stub
data to subdissectors, just show it as encrypted stub data.

svn path=/trunk/; revision=4998
2002-03-21 09:35:52 +00:00
Guy Harris
09acc1c074 Secondary addresses are NUL-terminated strings; treat them as such.
svn path=/trunk/; revision=4981
2002-03-19 11:10:40 +00:00
Guy Harris
0ab2b8b50f Don't show a secondary address if the secondary address length is 0.
svn path=/trunk/; revision=4968
2002-03-18 07:56:06 +00:00