Commit graph

98 commits

Author SHA1 Message Date
Jörg Mayer
a245e3742d Add a missing include packet-dcerpc-nt.h
svn path=/trunk/; revision=6999
2003-01-24 21:10:40 +00:00
Tim Potter
2213ef6aaa Perform the initialisation for the NT specific DCERPC dissectors as part
of the DCERPC dissector instead of creating a dummy protocol to hang
the ett and hf values off.

Make the open and close frame values in NT policy handles FT_FRAMENUM's
so the "Go to Corresponding Frame" menu item can be used on them.

svn path=/trunk/; revision=6995
2003-01-24 05:32:54 +00:00
Guy Harris
75dbe3e0b1 Catch ReportedBoundsError exceptions when dissecting decrypted stub
data, as the error could be due to the decryption being bad, and we
should still dissect the authentication data.

svn path=/trunk/; revision=6924
2003-01-14 22:03:33 +00:00
Ronnie Sahlberg
a80ddab6fd Update DCERPC so that for (NTLMSSP) PDUs that have been decrypted
we also call the proper DCERPC subdissector.

With this change ethereal will call the SAMR dissector and dissect the
decrypted SAMR packets in devins capture.

svn path=/trunk/; revision=6855
2003-01-06 11:27:03 +00:00
Guy Harris
bc0e186eef Fix a braino in a last-minute fix I put into the previous checkin.
svn path=/trunk/; revision=6826
2002-12-31 08:08:19 +00:00
Guy Harris
3a92530a52 From Devin Heitmueller: support for decrypting DCERPC conversations
using NTLMSSP version 1.

Show stub data as such for all requests and replies where we can't
dissect the stub data as a request or reply for some DCERPC-based
protocol.

svn path=/trunk/; revision=6825
2002-12-31 08:05:29 +00:00
Ronnie Sahlberg
e4633bc783 Update reassemble.c/show_item and all callers to use FT_FRAMENUM for the list of packets corresponding to a reassembled pdu
svn path=/trunk/; revision=6807
2002-12-19 11:22:38 +00:00
Guy Harris
73a5a10d7a When processing a connection-oriented DCERPC PDU, don't set the columns
until we know that we have the entire PDU - we might not have all of it,
as some of it might be in, for example, a later TCP segment.

svn path=/trunk/; revision=6785
2002-12-14 23:44:48 +00:00
Guy Harris
79275e0079 From Devin Heitmueller:
Minor change to the connection oriented DCE/RPC function calls.
	Now the offset is provided in the call, instead of having a
	hard-coded value in each function.  Also makes the calling
	convention consistent with the datagram equivalents for the
	functions.

	Didn't do it for dissect_dcerpc_cn_auth() yet, as that is a
	special case (and I am in the process of restructuring it to
	make verifier decryption work properly).

svn path=/trunk/; revision=6778
2002-12-11 19:50:24 +00:00
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