問題タブ [scapy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Scapy による低パフォーマンス
Tap0 からのすべてのトラフィックを Eth0 に送信し、Eth0 からのすべてのトラフィックを Tap0 に送信するスクリプトを作成しています。オンラインで多くの例を見つけた後、なんとか機能させることができました。私が抱えている問題は、パフォーマンスが非常に低いことです。
スクリプトを使用せずに 2 つの VM 間で ping を実行すると、1 ミリ秒未満かかります。スクリプトを使用すると、約 15 ミリ秒かかります。
scpを使用してVMから別のVMに10 MBのファイルを送信すると、平均. 転送速度は、スクリプトなしで 12 Mbps です。スクリプトを使用すると、1 Mbps 未満に低下します。
Python が実際にはネットワーク トラフィックを処理する最速の言語ではないことはわかっていますが、それほど遅いのでしょうか?
このコードを最適化する方法はありますか?
私の VM は Ubuntu 10.04 32 ビットです。
コードは次のとおりです。
python - Scapy を使用してパケット バイトを解析する
Scapy を使用して、パケット ペイロードの最初の 2 バイトを解析したいと思います。これを達成するための最良の方法は何ですか?オフセット計算は必要ですか?
最初にペイロードを解析する必要がありますが、以下は PCAP ファイル全体を解析しますが、すべてのペイロードの最初の 2 バイトを取得するより効率的な方法はありますか? リンク:
python - Pythonのstruct.packとバイナリ入力を理解する
次の関数は、のバイナリ4バイトキーを受け入れますkey
。buf
4バイトキーに対して排他的論理和されるバイナリ入力です。
forを介してバイナリデータを指定するためにkey = struct.pack(b">I", key)
から削除しました。これは、長さが4バイトで終わる場合は正常に機能します。そうでない場合は、次のエラーが発生します(以下のテストを参照)。four_byte_xor()
str(p.payload.payload.payload)[:4]
key
これは、00になるキーでxorされた入力で構成されるいくつかのテストで、最初のテストは成功します。
2番目のテストは成功せず、Aまたは1バイト余分に終了します。
さまざまな長さfour_byte_xor()
を受け入れるように変更できますか?buf
python - scapyのフィールドで使用できる値のリストを取得する方法(DHCPの有効なオプションなど)
scapyのレイヤーのフィールドの値のリストを取得するにはどうすればよいですか?たとえば、DHCPの「オプション」フィールドに使用できるすべての値を確認する簡単な方法はありますか?(私はオブジェクトのdictなどを掘り下げることができることを知っています。より良い方法はありますか?)
python - Python: ターミナルでサブプロセスの出力を非表示にし、サブの実行中にスクリプトを続行する
python2.6 を使用して、subprocess.Popen()
またはos.system()
2 つのタスクを実行する方法はありますか? 例では、スクリプトはairodump-ng
最初に " " 実行され、次にこのプロセスはサブであり、非表示になります (端末から出力されないことを意味します)。その後sniff
、scapy の機能を含む残りのスクリプトを " " 実行し続けます。調べてみましたが、Windows版とpython3しか見つかりませんでした。ちなみに私はdebianで動いています。
python - scapy パケットの到着時刻を取得する
scapy を使用してパケットの到着時間を取得する方法はありますか? scapy を使用して pcap ファイルを読み取ります。すべてのパケットの到着時間を知りたいのは、wireshark がそれを見ることができることがわかっているからです。ですから、きっと何か方法があるはずです。誰でも知っていますか?
python - リストはコピーできません
Scapyのsniff()関数を使用して、イーサネットからパケットをスニッフィングしています。私はそれをpktという変数に保存します。後で、別の変数buffpktにpktの内容を追加して、同じもののコピーを作成したいと思います。最初は両方の変数をリストとして宣言しましたが、pktがsniff()出力を格納すると、その型がインスタンスに変更されます。以下はコードです。
結果をbuffpktに追加して、スニッフィングされたすべてのパケットの大きなリストを作成したいのですが、できません。助言がありますか?
python - Python scapy:pcapファイルの読み取り、操作、書き込みpcap
python scapyを使用してpcapファイルを読み取り、TCPペイロードを操作して(たとえば、現在のペイロードを削除して0に置き換える)、操作したパケットを新しいpcapファイルに書き込みたい。
python - Scapy: 完全な IP パケット ヘッダーを取得するにはどうすればよいですか?
Scapy では、パケットを対応する ICMP 時間超過メッセージと手動で照合したいと考えています。
私は一致する必要があります:
- ICMP パケットの IP-in-ICMP フィールド
IP ヘッダーとデータ パケットの最初の 8 バイト ICMP パケットは問題ありません。
icmpPayload = str(icmpPacket[ICMP].ペイロード)
データ パケットの最初の 8 バイトについては、次のことを行う必要があります。
の IP ヘッダーだけを取得する方法がわかりませんmyPacket
。ここで行うことは、パケット全体のペイロードを最初の 8 バイトに置き換えることだけです。この検索と置換を何千ものパケットに適用すると、時間がかかりすぎる可能性があります。
次のことを簡単に実行できる、より高速な方法はありますか?
python - wxPython StyledTextCtrl 16 進フォーマット
手を貸していただける方へ。
wx.STC.StyledTextCtrlを使用するPythonでBoaConstructorを使用してアプリを構築しています。この styledtextctrl では、Scapy の hexdump 関数を使用して 16 進数データを出力しています。行番号、16 進数のダンプ、および文字トランスコードが追加されます。残念ながら、StyledTextCtrl でこのテキストをフォーマットして、通常の 16 進エディタのように表示する方法がわかりません (ここの画像を参照してくださいhttp://imgur.com/a/tqE02 )。ありがとう!