pretty good

This commit is contained in:
2025-07-28 08:14:15 -04:00
parent 36a576dc2c
commit 4dd632012f
21 changed files with 2174 additions and 152 deletions

View File

@@ -22,6 +22,7 @@ except ImportError:
sys.exit(1)
from .base import ProtocolDissector, DissectionResult, ProtocolType
from .decoders.registry import decoder_registry
class Chapter10Dissector(ProtocolDissector):
@@ -117,7 +118,18 @@ class Chapter10Dissector(ProtocolDissector):
if packet_length > 24 and payload_start + (packet_length - 24) <= len(raw_data):
result.payload = raw_data[payload_start:payload_start + (packet_length - 24)]
# Try to parse specific data formats
# Use new decoder framework for payload parsing
decoded_payload = decoder_registry.decode_payload(result.payload, header)
if decoded_payload:
result.fields['decoded_payload'] = {
'data_type_name': decoded_payload.data_type_name,
'format_version': decoded_payload.format_version,
'decoded_data': decoded_payload.decoded_data,
'decoder_errors': decoded_payload.errors,
'decoder_metadata': decoded_payload.metadata
}
# Legacy Ethernet Format 0 parsing (for backwards compatibility)
data_type = header.get('data_type', 0)
if data_type == 0x40: # Ethernet Format 0
eth_data = self._parse_ethernet_fmt0(result.payload)