まず、ここでscapyに関する他の生の回答を読みましたが、役に立たなかったものはありません。何か間違ったことをしているだけなのかもしれません。それが今日私をここに連れてきた理由です。
したがって、最初に、いくつかの再送信で破損し始めたpcapファイルがあります。これは、正しく取得できたと信じています。
Radiotapヘッダー、IEEE 802.11(dot11)、論理リンク制御、IPv4、UDP、およびDNSが含まれています。
私の理解では、送信されるudpパケットはこの生データを保持しますが、最近のいくつかの癖に影響します。おそらく、生はRadiotap/rawにあります。
Scapyを使用してパケットを反復処理し、Rawレイヤーを含むパケットが見つかったら、scapyの.show()
関数を使用して表示します。
そのため、利用可能な未加工の負荷があることがわかります
_###[ Raw ]###
\load \
|###[ Raw ]###
| load = '@\x00\x00\x00\xff\xff\xff\xff\xff\xff\x10h?'
_
ですから、私の質問は、このペイロードをキャプチャして、これが何であれ受信する方法だと思います。私の知る限り、ロードはイメージファイルであるはずですが、それを信じるのに苦労しているので、どこかで足を踏み外したと思います。
上記の結果を達成するために使用しているコードは次のとおりです
_from scapy.all import *
from scapy.utils import *
pack = rdpcap('/home/username/Downloads/new.pcap')
for packet in pack:
if packet.getlayer(Raw):
print '[+] Found Raw' + '\n'
l = packet.getlayer(Raw)
rawr = Raw(l)
rawr.show()
_
助け、またはさらに読むための洞察をいただければ幸いです。私はscapyに不慣れであり、パケット分析の専門家ではありません。
*補足として、以前は(別のコードとサーバーを使用して)パケットを再生して自分自身に送信しようとしましたが、役に立ちませんでした。しかし、UDPパケットの受信に関する知識が不足しているためだと感じています。
[〜#〜] updates [〜#〜]-scapyリアセンブラを使用してpcapファイルをテストしましたが、断片化されたパケットなどがないことを確認したので、すべてがスムーズに進むはずだと思います... wiresharkでpcapを開くと、再送信があることがわかりますが、断片化が発生しなかったため、それが目標にどの程度影響するかわかりません。
また、私はgetlayer(Raw).load
を試しましたが、印刷を使用すると画面が意味不明になり、データが画像になると想定していますが、今すぐ取得する必要があります使用可能な形式に。
できるよ:
data = packet[Raw].load