как получить данные из hexdump в Scapy? - PullRequest
1 голос
/ 19 августа 2011
0000   00 01 00 14 45 49 50 43  A8 2A 55 50 6F 72 74 20   [37m.[0m[37m.[0m[37m.[0m[37m.[0mEIPC[37m.[0m*UPort 
0010   49 64 20 3D 20 34 33 30  35 30 2A 2A 2A 2A 2A 2A   Id = 43050******
0020   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0030   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0040   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0050   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0060   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0070   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0080   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************

Это мой hexdump полученного пакета, который мне просто нужен -

UPort Id = 43050
******
****************
****************
****************
****************
****************
****************
****************

Это в основном моя полезная нагрузка, как я могу ее получить?

Ответы [ 2 ]

1 голос
/ 25 сентября 2018

Вы можете использовать import_hexcap () и вставить свой hexdump в стандартный ввод. Замените IP () на любой класс пакета, который вы хотите проанализировать:

>>> pkt_hex = IP(import_hexcap())
0000   00 01 00 14 45 49 50 43  A8 2A 55 50 6F 72 74 20   [37m.[0m[37m.[0m[37m.[0m[37m.[0mEIPC[37m.[0m*UPort 
0010   49 64 20 3D 20 34 33 30  35 30 2A 2A 2A 2A 2A 2A   Id = 43050******
0020   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0030   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0040   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0050   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0060   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0070   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
0080   2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A   ****************
>>> pkt_hex
<IP  version=0L ihl=0L tos=0x1 len=20 id=17737 flags=DF frag=4163L ttl=168 proto=42 chksum=0x5550 src=111.114.116.32 dst=73.100.32.61 options=[<IPOption_EOL  copy_flag=0L optclass=1L option=end_of_list |>, <IPOption_Router_Alert  copy_flag=0L optclass=1L option=router_alert length=51 alert=12341 |>, <IPOption  copy_flag=0L optclass=1L option=imi_traffic_descriptor length=42 value='****************************************' |>, <IPOption  copy_flag=0L optclass=1L option=experimental_measurement length=42 value='****************************************' |>, <IPOption  copy_flag=0L optclass=1L option=experimental_measurement length=42 value='*************' |>] |<Raw  load='********************' |>>
>>> 
0 голосов
/ 08 сентября 2011

Вы ищете только номер порта?

>>> import re
>>> data = '\x00\x01\x00\x14\x45\x49\x50\x43\xA8\x2A\x55\x50\x6F\x72\x74\x20\x49\x64\x20\x3D\x20\x34\x33\x30\x35\x30\x2A\x2A\x2A\x2A\x2A\x2A'
>>> print re.findall('UPort Id = (\d*)', data)[0]
43050
>>> 
...