Ethereal-dev: [no subject]
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Jeffrey Perry <j.perry@xxxxxxxxxxxxxxxx>
Date: Mon, 05 Jul 1999 12:23:11 -0400
Yes, one comment. I think this is the right approach, I would suggest
taking it one step farther though. If you build the parser into
ethereal, then no recompiles would be needed for adding a new
protocol. This is how Etherpeek on Windows works.
> Hi,
>
> I wanted to discuss my progress as far as generating code for decode
> modules is concerned, and seek some input and discussion.
>
> At present, I have a Perl program that can parse a description file of the
> following sort:
>
> SMB open_andx {
> andx; # An andx SMB
> request {
> UCHAR Word Count (WCT) = 15;
> UCHAR AndXCommand;
> UCHAR AndXReserved;
> USHORT AndXOffset;
> BITFIELD 16 Flags = {
> 0x01 = { "Return Additional Info" , "Dont Return Additional Info" };
> 0x02 = { "Exclusive OpLock Requested" , "Exclusive OpLock not
> Requested" };
> 0x04 = { "Batch OpLock Requested" , "Batch OpLock not Requested" };
> };
> USHORT Desired Access;
> USHORT Search Attributes;
> USHORT File Attributes;
> USHORT Creation Time | fcall dissect_smb_time; # Call dissect_smb_time
> USHORT Creation Date | fcall dissect_smb_date; # Call dissect_smb_date
> USHORT Open Function;
> ULONG Allocated Size;
> ULONG Reserved1;
> ULONG Reserved2;
> USHORT Byte Count;
> UCHAR Buffer Format;
> STRING File Name;
> }
> response {
> UCHAR Word Count (WCT) = 15;
> UCHAR AndXCommand;
> UCHAR AndXReserved;
> USHORT AndXOffset;
> USHORT FID;
> USHORT Attributed;
> USHORT Last Write Time | fcall dissect_dos_time;
> USHORT Last Write Date | fcall dissect_dos_date;
> ULONG Data Size;
> USHORT Granted Access;
> USHORT File Type;
> USHORT Device State;
> USHORT Action;
> ULONG Server FID;
> USHORT Reserved;
> USHORT Byte Count;
> }
> }
>
> I can handle structured protocols and can associate calls to helper
> routines in Ethereal with fields, as well as fields that depend on other
> fields in simple ways (ie, length of F2 is F1).
>
> Now, my parser is very fragile, and the language is ugly, and I do not
> handle all possible constructs, so I am thinking of rewriting the whole
> thing, and I thought, why not try to handle more protocols?
>
> It seems like there are three different protocol types:
>
> 1. Highly structured, like SMB, which are easy to do using the above approach
>
> 2. Less structured, like FTP, which, none-the-less could be done with the
> above approach,
>
> 3. Unstructured, like Telnet, which appear hard, but might be describable.
>
> My goal would be a protocol decode builder package, that can build all the
> dissect routines and can plug things into the correct place to add a new
> protocol.
>
> Are there any comments?
>
>
> Regards
> -------
> Richard Sharpe, sharpe@xxxxxxxxxx, NS Computer Software and Services P/L,
> Samba (Team member www.samba.org), Ethereal (Team member www.zing.org)
> Co-author, SAMS Teach Yourself Samba in 24 Hours
>
- Follow-Ups:
- [ethereal-dev] Re:
- From: Laurent Deniel
- [ethereal-dev] Re:
- From: Richard Sharpe
- [ethereal-dev] Re:
- References:
- [no subject]
- From: Richard Sharpe
- [no subject]
- Prev by Date: [no subject]
- Next by Date: [ethereal-dev] Re:
- Previous by thread: [no subject]
- Next by thread: [ethereal-dev] Re:
- Index(es):





