Eu tenho um hexdump de uma mensagem LTE RRC que estou tentando decodificar usando o Tshark e não consigo descobrir a sintaxe da linha de comando.
Estou tentando usar a funcionalidade "User DLT" do Wireshark/Tshark para resolver esse problema, que parece ser a melhor/única maneira de fazer isso.
Aqui está o dump hexadecimal da mensagem:
684C424C18432277700C823504640420211108EB5800
Eu costumava text2pcap
criar um arquivo .pcap, usando o "User 0 (147) DLT":
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
Agora é aqui que está o problema, eu acho. Eu não sei a sintaxe correta para o tshark
comando. Aqui está onde estou:
tshark -V -o "uat:user_dlts:\"User 0 (DLT=147)\",\"lte_rrc\",\"0\",\"\",\"0\",\"\"" -r /tmp/sib.pcap
E aqui está a saída que recebo:
tshark: Invalid -o flag "uat:user_dlts:\"User 0 (DLT=147)\",\"lte_rrc\",\"0\",\"\",\"0\",\"\""
Alguma ideia?
Eu descobri; Acontece que eu estava apenas usando a string errada para o protocolo de carga útil. Eu vi que
tshark -G protocols
retornoulte_rrc
como uma opção, então pensei que seria suficiente, mas não foi. Eu precisava especificar o protocolo específico dentro do LTE RRC:lte-rrc.bcch.dl.sch
. Então meutshark
comando completo fica assim:Infelizmente, até agora não consegui encontrar uma lista exaustiva (ou mesmo remotamente próxima a exaustiva) dos protocolos disponíveis que você pode especificar para a
-o
opção.Felizmente, para meus propósitos específicos, o decodificador de protocolo 3GPP de http://3gppdecoder.free.fr me fornece uma lista dos protocolos celulares de que preciso. Obviamente, isso não ajuda para outros protocolos, no entanto... uma lista exaustiva seria boa.