Отображать только раздел данных пакета

Ваша проблема описана в этом следующем отчете об ошибке. Кажется, что правильное исправление описано в Commment # 11:

Задайте переменную https_proxy для вашего прокси Редактировать /etc/sudoers или правильный файл в /etc/sudoers.d/, поэтому он содержит:
Defaults env_keep = https_proxy
1
задан 16 April 2014 в 13:52

2 ответа

Попробуйте это,

$ echo 'E..".J@.@.U~.........v.....!HELLO' | grep -oP '!+.*' | sed 's/.\(.*\)/\1/g'
HELLO
4
ответ дан 24 May 2018 в 10:30
  • 1
    это также будет работать echo 'E..".J@.@.U~.........v.....!HELLO' | sed 's/.*\!//' – Avinash Raj 16 April 2014 в 20:01

Основываясь на структуре пакета udp, вы должны вырезать вывод tcpdump из определенного места, вместо поиска определенного символа, который также может измениться:

sudo tcpdump -Aq -i lo udp  port 1234 | cut -c29-

Например, отправка udp-пакет с netcat:

echo "HELLO" | netcat -4u -w1 localhost 1234

это мой вывод tcpdump (в шестнадцатеричном и ascii):

sudo tcpdump -X -i lo udp port 1234

12:35:10.672236 IP localhost.36898 > localhost.1234: UDP, length 6
     0x0000:  4500 0022 ab0e 4000 4011 91ba 7f00 0001  E.."..@.@.......
     0x0010:  7f00 0001 9022 04d2 000e fe21 4845 4c4c  .....".....!HELL
     0x0020:  4f0a                                     O.

, но, отправляя другую строку, например:

echo "HELLOS" | netcat -4u -w1 localhost 1234

это результат:

12:50:01.987211 IP localhost.45180 > localhost.1234: UDP, length 7
    0x0000:  4500 0023 3873 4000 4011 0455 7f00 0001  E..#8s@.@..U....
    0x0010:  7f00 0001 b07c 04d2 000f fe22 4845 4c4c  .....|....."HELL
    0x0020:  4f53 0a                                  OS.

символ перед строкой «HELLOS» изменен, потому что 2 байта, предшествующие разделу даты, связаны с контрольной суммой udp, а затем изменяются в соответствии с отправленным пакетом.

Скриншот whireshark:

IP:

UDP-пакет:

9] и 2 байтовой контрольной суммы:

2
ответ дан 24 May 2018 в 10:30

Другие вопросы по тегам:

Похожие вопросы: