Как «переиграть» wireshark c-array в perl или C - PullRequest
0 голосов
/ 19 июля 2010

Как можно поступить с шестнадцатеричными данными в программу и отправить их обратно?

char peer0_0[] = {
0x00, 0x00, 0x10, 0x01, 0xbf, 0x8b, 0xf9, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
0x00, 0x00, 0x00, 0x07 };

char peer0_1[] = {
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 };

char peer0_2[] = {
0x02, 0x00, 0x00, 0x00 };

Ответы [ 2 ]

1 голос
/ 19 июля 2010

Если у вас уже есть код в том формате, который вы опубликовали, то делать особо нечего. Вы на самом деле не указали, где вы хотите воспроизвести его. В зависимости от того, как вы хотите это сделать, вы просто передаете массив любой функции, которая выполняет фактическую отправку. Например, если вы хотите отправить эти данные через существующий сокет, вы можете сделать что-то вроде этого:

send(my_socket, peer0_0, sizeof(peer0_0), 0);
0 голосов
/ 04 августа 2010

То, что вы хотите, это бит-твист.По сути, это устройство воспроизведения файлов pcap.Вам не нужно сохранять файл в каком-либо специальном формате, его можно использовать с собственным форматом файла. Wireshark собирает данные в.

http://bittwist.sourceforge.net/

...