2014-01-29 2 views
2

У меня есть шестнадцатеричная строка, которую я хочу преобразовать в pires для Wireshark. Wireshark принимает дамп в следующем формате:hexidecimal string to wireshark pcap

0000 00 00 00 00 00 aa 00 00 00 00 00 01 88 47 00 3e 
0010 80 0a 00 00 d1 0a 10 00 89 02 20 01 05 46 00 00 
0020 00 01 00 02 04 03 6d 64 31 02 03 6d 61 57 00 00 
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0060 00 00 00 00 00 

У меня есть следующий поток:

0000000000AA0000000000018847003E800A0000D10A100089022001054600000001000204036D643102036D615700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 

Я экспериментировал с od -Ax -tc1 -v команды в Linux, но не могу получить правильный вывод. Кто-нибудь знает, как это можно сделать?

Спасибо.

+0

Поток в текстовом формате? в файле? –

+0

Да, это файл, который я передаю команде od. – JohnB

ответ

2

Вы можете использовать следующий скрипт. Это всего лишь обходной путь. od и hexdump будут интерпретировать 0 как символ '0' и использовать байт 48, чтобы вы не смогли получить правильный вывод. Сценарий читает два символа в 16 раз, а смещение соответственно увеличивается. Довольно просто понять, я думаю :)

#!/bin/bash 
off=0 
while [ 1 ] 
do 
     printf "%04x " $off 
     for ((i=0;i<16;i++)) 
     do 
       read -n 2 a 
       [ $? -ne 0 ] && echo && exit 
       echo -n "$a " 
     done 
     echo 
     off=`expr $off + 16` 
done <test 

где test это файл, который содержит поток. Я получил следующий результат для ввода.

0000 00 00 00 00 00 AA 00 00 00 00 00 01 88 47 00 3E 
0010 80 0A 00 00 D1 0A 10 00 89 02 20 01 05 46 00 00 
0020 00 01 00 02 04 03 6D 64 31 02 03 6D 61 57 00 00 
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0060 00 00 00 00 00 
+0

Я заметил, что 'od' возвращает шестнадцатеричное значение символа нуль. Спасибо за этот скрипт. – JohnB

Смежные вопросы