42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
import binascii
|
|
import logging
|
|
import sys
|
|
|
|
sys.path.insert(0, '/home/zjz/CCSDS_study/netzob-030/test/src')
|
|
logging.basicConfig(level=logging.INFO, format='%(message)s')
|
|
|
|
from netzob.all import *
|
|
|
|
samples = [
|
|
"00ff1f000000", "00fe1f000000", "00fe1f000000", "00fe1f000000",
|
|
"00ff1f000000", "00ff1f000000", "00ff0f000000", "00fe2f000000",
|
|
"00fe1f000000", "00ff0f000000", "000010000000", "00fe1f000000",
|
|
"00ff1f000000", "00ff0f000000", "00ff1f000000", "000010000000",
|
|
"00ff0f000000", "000010000000", "00ff1f000000", "00ff0f000000",
|
|
"00ff1f000000", "00fe0f000000", "00ff1f000000", "00ff1f000000",
|
|
"00ff0f000000", "00fe1f000000", "00fe2f000000", "00fe1f000000",
|
|
"00fe1f000000", "00fe1f000000", "000010000000", "00ff0f000000",
|
|
"000010000000", "00fe0f000000", "00ff1f000000", "00fe1f000000",
|
|
"00ff1f000000", "00ff1f000000", "00ff0f000000", "000010000000",
|
|
"00fe1f000000", "00ff2f000000", "00fe1f000000", "00fe1f000000",
|
|
"00ff1f000000", "00ff1f000000", "00ff1f000000", "00ff1f000000",
|
|
"00fe1f000000", "00fe2f000000",
|
|
]
|
|
|
|
messages = [RawMessage(data=binascii.unhexlify(s)) for s in samples]
|
|
symbol = Symbol(messages=messages)
|
|
symbol.addEncodingFunction(TypeEncodingFunction(HexaString))
|
|
|
|
print("=== 原始消息 ===")
|
|
print(symbol)
|
|
|
|
# 静态字段切分(保留相邻动态字段分离)
|
|
Format.splitStatic(symbol, mergeAdjacentDynamicFields=False)
|
|
|
|
print("\n=== splitStatic 推理结果 ===")
|
|
print(symbol)
|
|
|
|
print("\n=== 字段结构 ===")
|
|
for i, field in enumerate(symbol.children):
|
|
print(f"Field[{i}]: {field.name} domain={field.domain}")
|