Já alcancei um limite de tshark codificado?

1

Estou usando o tshark para copiar o bittorrent.piece.data e parece ter atingido algum limite interno no tshark.

tshark -r 2-live.pcap -R "bittorrent.piece.data and ip.dst_host == 192.168.3.14" -T fields bittorrent.piece.data > dumped

Isso deve despejar os dados da peça (pedaços de 32Kbyte) como bytes separados por dois pontos em hexadecimal sem o prefixo 0x, por exemplo:     7f: 00: ab: cd .... e assim por 32Kbytes.

Uma parte é gravada no stdout por linha, que eu estou simplesmente redirecionando para um arquivo, mas os dados da peça são truncados de alguma forma para um comprimento de linha de 65540, onde estou esperando 90-100 KBytes por linha / peça, dados os 3 caracteres-por-byte requeridos pelo formato de saída escolhido por tshark (7f: == 1 byte)

Correndo com strace eu posso ver que tshark está escrevendo 4096 bytes e então 61444 para cada pedaço.

Eu não sei se esta é uma limitação hard-wired do tshark em relação à saída de campos de um protocolo lido a partir de um arquivo pcap, ou se minha configuração do Linux está limitando isso em um nível inferior. Espero que seja o primeiro, mas gostaria de receber conselhos.

Preciso fazer o patch do código wireshark / tshark ou existe uma opção de linha de comando ou de configuração que está faltando?

Observação: posso despejar com êxito 32768 KBytes de dados de carga útil da ferramenta wireshark da GUI para que os dados estejam definitivamente no arquivo pcap. Mas estou interessado em automatizar esse processo e preciso que o tshark me dê todos os bytes ...

    
por codeasone 23.08.2010 / 19:37

1 resposta

0

Eu prefiro sugerir que você escreva dados de pacotes brutos em um arquivo com -w tshark (que deve funcionar bem) e então converta-os para o formato desejado com hexdump -v -e '1/1 "%02x:"' <dump.raw >dump.hex .

    
por 23.08.2010 / 21:15