Ethereal-dev: [Ethereal-dev] Re: DNP3 Dissector Additions

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: ronnie sahlberg <ronniesahlberg@xxxxxxxxx>
Date: Tue, 21 Jun 2005 06:12:28 -0400
the patch does not apply to current svn

functions such as flags_to_str16() does not check for writing beyond
the end of the str buffer.
Since flags_to_str16() are only used to populate the expansion line
for the flag bits,
can you not remove it and insert a
if(flags&FLAG_VALUE)
	proto_item_append_text()
after each of the proto_tree_add_boolean() call instead
and avoid any potential buffer overflow?





On 6/21/05, Chris Bontje <chrisbontje@xxxxxxx> wrote:
> All,
> 
> Here are the additions to the DNP3 dissector as promised.  I would like to
> submit this patch for the next version of Ethereal.  These modifications
> should be considered preliminary, here is a brief summary of what was
> added:
> 
> - Added Application Layer Object Decoding.  Supports IIN bits and most of
> the common objects & variations (Binary Inputs, Binary Outputs, Control
> Relay O/P Block, Binary Counters, Analog Inputs, Class Data, Time Formats). 
> Support will be added for other objects/vars as captures with examples of
> them can be provided.
> 
> - Added support for more Application Layer function codes.  Support for
> remaining codes will be added in as captures can be provided.
> 
> - Added UDP/IP port 20000 as a default DNP3 port (in addition to TCP/IP port
> 20000), as registered with regulatory bodies.
> 
> - Started re-write to support fragments with multiple DNP3-frames and frames
> seperated between multiple fragments (both UDP & TCP).
> 
> This dissector has been tested w/ a wide varity of DNP3 SCADA captures, if
> there is a capture that generates errors or invalid output, please provide
> it so appropriate fixes can be made! :)  The same goes for any suggestions
> or comments regarding the output formatting - just because I like this
> output doesn't mean someone else is expected to!
> 
> This diff file was created using the 'diff' util with the -u command-line
> switch, let me know if it is not acceptable for submission.  The testing has
> primarily been done on the VC6 platform, please let me know if issues are
> encountered w/ any *nix builds.
> 
> Thanks goes out to Graham Bloice for his invaluable assistance w/ the whole
> process of adding this support.
> 
> Regards,
> 
> Chris Bontje
> Calgary, Alberta, Canada
> 
> ----- Original Message -----
> From: Chris Bontje <chrisbontje@xxxxxxx>
> Date: Saturday, June 4, 2005 8:01 pm
> Subject: DNP3 Dissector Additions
> 
> > All,
> > 
> > I have recently been tinkering w/ the DNP3 dissector included in 
> > the latest public source release of Ethereal.
> > 
> > I've successfully added in Application Layer Decoding support for 
> > several objects and am planning on adding a mostly complete 
> > library.  So far I have added in some of the most common object 
> > variations for Binary Inputs, Outputs, Analog Inputs (16-bit & 32-
> > bit) and Binary Counters.
> > 
> > I have several Ethereal captures from various SCADA networks w/ 
> > DNP3 traffic and have been punishment-testing my work to the best 
> > of my abilities...  so far so good!
> > 
> > When I'm satisified w/ my code, I'll be certain to post my changes 
> > to the source tree so that they can (hopefully) be included in the 
> > official release.
> > 
> > Here's hoping my intermediate-level coding is clean enough to make 
> > it into an excellent project like Ethereal!
> > 
> > Regards,
> > 
> > Chris Bontje
> > Calgary, Alberta, Canada
> > 
> 
>