Python 2.7 使用Python Scapy修复pcap校验和
我已经编写了一个小python脚本,用scapy修复L3-4协议的校验和。当我运行脚本时,它没有接受命令行参数,或者可能是其他原因,它没有生成修复校验和pcap。我已经从scapy命令行验证了rdpcap(),它正在使用脚本工作,但没有得到执行。我的节目是Python 2.7 使用Python Scapy修复pcap校验和,python-2.7,protocols,scapy,Python 2.7,Protocols,Scapy,我已经编写了一个小python脚本,用scapy修复L3-4协议的校验和。当我运行脚本时,它没有接受命令行参数,或者可能是其他原因,它没有生成修复校验和pcap。我已经从scapy命令行验证了rdpcap(),它正在使用脚本工作,但没有得到执行。我的节目是 import sys import logging logging.getLogger("scapy").setLevel(1) try: from scapy.all import * except ImportError: imp
import sys
import logging
logging.getLogger("scapy").setLevel(1)
try:
from scapy.all import *
except ImportError:
import scapy
if len(sys.argv) != 3:
print "Usage:./ChecksumFixer <input_pcap_file> <output_pcap_file>"
print "Example: ./ChecksumFixer input.pcap output.pcap"
sys.exit(1)
#------------------------Command Line Argument---------------------------------------
input_file = sys.argv[1]
output_file = sys.argv[2]
#------------------------Get The layer and Fix Checksum-------------------------------
def getLayer(p):
for paktype in (scapy.IP, scapy.TCP, scapy.UDP, scapy.ICMP):
try:
p.getlayer(paktype).chksum = None
except: AttributeError
pass
return p
#-----------------------FixPcap in input file and write to output fi`enter code here`le----------------
def fixpcap():
paks = scapy.rdpcap(input_file)
fc = map(getLayer, paks)
scapy.wrpcap(output_file, fc)
导入系统
导入日志记录
logging.getLogger(“scapy”).setLevel(1)
尝试:
从斯卡皮来的,都是进口货*
除恐怖外:
进口服装
如果len(sys.argv)!=三:
打印“用法:./ChecksumFixer”
打印“示例:./ChecksumFixer input.pcap output.pcap”
系统出口(1)
#------------------------命令行参数---------------------------------------
input_file=sys.argv[1]
输出文件=sys.argv[2]
#------------------------获取图层并修复校验和-------------------------------
def getLayer(p):
对于paktype-in(scapy.IP、scapy.TCP、scapy.UDP、scapy.ICMP):
尝试:
p、 getlayer(paktype).chksum=None
除:属性错误
通过
返回p
#-----------------------在输入文件中修复PCAP并写入输出fi`在此处输入代码`le----------------
def fixpcap():
paks=scapy.rdpcap(输入文件)
fc=映射(getLayer,paks)
scapy.wrpcap(输出文件,fc)
函数未执行的原因是您没有调用它。在脚本末尾添加对
fixpcap()
的调用可以解决此问题
此外,这里还有一些更正和建议:
后面的语句也应该缩进,如下所示:
try:
from scapy.all import *
except ImportError:
import scapy
我以前也做过同样的改变,效果很好。我忘了更新stackoverflow。