我有一个 LTE RRC 消息的十六进制转储,我正在尝试使用 Tshark 对其进行解码,但我无法弄清楚命令行语法。
我正在尝试使用 Wireshark/Tshark 的“用户 DLT”功能来解决这个问题,这似乎是最好/唯一的方法。
这是消息的十六进制转储:
684C424C18432277700C823504640420211108EB5800
我首先使用text2pcap
“User 0 (147) DLT”创建了一个 .pcap 文件:
echo 000000 68 4c 42 4c 18 43 22 77 70 0c 82 35 04 64 04 20 21 11 08 eb 58 00 | \
text2pcap -D -l 147 - /tmp/sib.pcap
我认为现在问题出在这。我不知道该tshark
命令的正确语法。这是我所在的位置:
tshark -V -o "uat:user_dlts:\"User 0 (DLT=147)\",\"lte_rrc\",\"0\",\"\",\"0\",\"\"" -r /tmp/sib.pcap
这是我得到的输出:
tshark: Invalid -o flag "uat:user_dlts:\"User 0 (DLT=147)\",\"lte_rrc\",\"0\",\"\",\"0\",\"\""
有任何想法吗?
我想到了; 原来我只是为有效载荷协议使用了错误的字符串。我看到它作为一个选项
tshark -G protocols
返回lte_rrc
,所以我认为这就足够了,但事实并非如此。我需要在 LTE RRC 中指定特定协议:lte-rrc.bcch.dl.sch
. 所以我的完整tshark
命令如下所示:不幸的是,到目前为止,我一直无法找到您可以指定给
-o
选项的可用协议的详尽(或什至接近详尽)列表。幸运的是,出于我的特定目的,来自 http://3gppdecoder.free.fr 的 3GPP 协议解码器为我提供了我需要的蜂窝协议列表。显然,这对其他协议无济于事,但是……详尽的清单会很好。