使用 Scapy 生成原始数据包时出现奇怪的负载
Strange Payload when generating raw packet with Scappy
我在尝试使用 Scappy 生成原始数据包时遇到了一个奇怪的问题。
我正在做以下事情:
eee=Ether(dst='08:00:11:11:11', src='08:00:11:11:22:22', type=0x888)/Raw(load='112233445566778888776655443322110901')
但是当我对新创建的数据包进行 hexdump 时:
hexdump(eee)
0000 08 00 11 11 11 00 08 00 11 11 22 22 08 88 **31 31** ..........""..11
0010 **32 32** 33 33 34 34 35 35 36 36 37 37 38 38 38 38 2233445566778888
0020 37 37 36 36 35 35 34 34 33 33 32 32 31 31 30 39 7766554433221109
0030 30 31
看起来它正在将 3 附加到负载的 hexdump 版本。真不知道那个3是从哪里出现的
提前感谢您的任何提示。
Raw
层采用 load
参数的二进制表示。由于字符1
的ascii值为0x31
而字符2
的ascii值为是0x32
,字符串1122
的二进制表示是0x31313232
。这就是您看到的 hexdump
.
的输出
您需要做的是在将字符串作为 load
参数传输到 Raw
层之前对其进行解码:
In [1]: from scapy.all import *
WARNING: No route found for IPv6 destination :: (no default route?)
In [2]: eee=Ether(dst='08:00:11:11:11', src='08:00:11:11:22:22', type=0x888)/Raw(load='112233445566778888776655443322110901'.decode("HEX"))
In [3]: hexdump(eee)
0000 08 00 11 11 11 00 08 00 11 11 22 22 08 88 11 22 ..........""..."
0010 33 44 55 66 77 88 88 77 66 55 44 33 22 11 09 01 3DUfw..wfUD3"...
我在尝试使用 Scappy 生成原始数据包时遇到了一个奇怪的问题。
我正在做以下事情:
eee=Ether(dst='08:00:11:11:11', src='08:00:11:11:22:22', type=0x888)/Raw(load='112233445566778888776655443322110901')
但是当我对新创建的数据包进行 hexdump 时:
hexdump(eee)
0000 08 00 11 11 11 00 08 00 11 11 22 22 08 88 **31 31** ..........""..11
0010 **32 32** 33 33 34 34 35 35 36 36 37 37 38 38 38 38 2233445566778888
0020 37 37 36 36 35 35 34 34 33 33 32 32 31 31 30 39 7766554433221109
0030 30 31
看起来它正在将 3 附加到负载的 hexdump 版本。真不知道那个3是从哪里出现的
提前感谢您的任何提示。
Raw
层采用 load
参数的二进制表示。由于字符1
的ascii值为0x31
而字符2
的ascii值为是0x32
,字符串1122
的二进制表示是0x31313232
。这就是您看到的 hexdump
.
您需要做的是在将字符串作为 load
参数传输到 Raw
层之前对其进行解码:
In [1]: from scapy.all import *
WARNING: No route found for IPv6 destination :: (no default route?)
In [2]: eee=Ether(dst='08:00:11:11:11', src='08:00:11:11:22:22', type=0x888)/Raw(load='112233445566778888776655443322110901'.decode("HEX"))
In [3]: hexdump(eee)
0000 08 00 11 11 11 00 08 00 11 11 22 22 08 88 11 22 ..........""..."
0010 33 44 55 66 77 88 88 77 66 55 44 33 22 11 09 01 3DUfw..wfUD3"...