scapy кодировка когда строка - PullRequest
4 голосов
/ 18 октября 2011

Что это за кодировка ниже, которую вы получаете, когда строите пакет в scapy? Это, конечно, не шестнадцатеричное.

str (IP ()) 'E \ x00 \ x00 \ x14 \ x00 \ x01 \ x00 \ x00 @ \ x00 | \ xe7 \ x7f \ x00 \ x00 \ x01 \ x7f \ x00 \ x00 \ x01'

1 Ответ

4 голосов
/ 30 октября 2011

\ x - это шестнадцатеричное обозначение.В этом случае, когда вы используете str (IP ()), вы пытаетесь преобразовать пакетные данные в строку, которая не является полностью допустимой, поскольку не все необработанные шестнадцатеричные данные могут быть найдены в таблице ASCII, чтобы заменить их буквой, чтобы любой шестнадцатеричный код, который могПреобразование будет видно в этом формате \ x14.

Я думаю, что поможет следующий пример:

  • просмотр сводки пакета с использованием метода scapy
  • кодирование данных пакета в шестнадцатеричный формат для просмотра с использованием методов python

    Welcome to Scapy (2.1.1-dev)
    >>> pkt=IP()
    >>> pkt.summary()
    '127.0.0.1 > 127.0.0.1 ip'
    >>> data=str(pkt)
    >>> data.encode('hex')
    '450000140001000040007ce77f0000017f000001'
    >>>
    

учитывайте следующие моменты:

  • в SCAPY, если вы создаете IP-уровень без определения источника и назначения, адрес обратной связи будет установлен по умолчаниюдля обоих, как показано в примере '127.0.0.1> 127.0.0.1 ip'
  • .summary () - метод Scapy
  • str (), .encode - методы python
...