0

Scappy で raw パケットを生成しようとすると、奇妙な問題が発生します。

私は次のことをしています:

eee=Ether(dst='08:00:11:11:11', src='08:00:11:11:22:22', type=0x888)/Raw(load='112233445566778888776655443322110901')

しかし、新しく作成されたパケットの 16 進ダンプを実行すると、次のようになります。

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

ペイロードの hexdump バージョンに 3 を追加しているようです。あの3人がどこから現れているのか本当にわかりません。

ヒントをお寄せいただきありがとうございます。

4

1 に答える 1

0

レイヤーは、引数のRawバイナリ表現を取ります。文字の ascii 値は であり、文字loadascii10x31ある2ため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"...
于 2015-06-18T11:20:30.083 に答える