question about Argus Data Specific Records (DSR) header format
mel
mel at hackinthebox.org
Wed Jan 16 01:53:46 EST 2008
Hi Carter,
In include/argus_def.h, the DSR header is like the one below:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Type |0| SubType | Qualifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Argus DSR Data |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
I pretty much understand the Type, SubType, Qualifier, Length and the
various DSR data and their format. Also, from include/argus_def.h:
There are two types of DSR, 1) a Type Value (TV) record
with an explicit length of 4 bytes, and 2) a Type Length
Value (TLV) record, that is longer than 4 bytes and supports
variable length records.
The fixed length record is distinquished from the variable
length records with the most significant bit of the Type
Field set to 1 (>= 0x80).
However, looking deeper at the code, I found:
ARGUS_FLOW_CLASSIC5TUPLE
TYPE=ARGUS_FLOW SubType=ARGUS_CLASSIC5TUPLE
Qual=ARGUS_TYPE_IPV4
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| 0x02 |1|D| 0x01 | 0x01 | 0x06 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ARGUS_FLOW_CLASSIC5TUPLE
TYPE=FLOW SubType=ARGUS_CLASSIC5TUPLE Qual=ARGUS_TYPE_ARP
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| 0x02 |1|0| 0x01 | 0x07 | 0x06 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TYPE=FLOW SubType=ARGUS_FLOW_MATRIX Qual=ARGUS_TYPE_IPV4
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| 0x02 |K|D| 0x02 | 0x01 | 0x03 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
and so on.
It seems like the 8th and 9th bit have different values other than 1 or
0. Can you please explain?
Cheers,
--mel
More information about the argus
mailing list