[英]How do I configure the protocol layer of my packets Scapy?
我正在從 pcap 文件中讀取數據包並將它們發送到我的網絡上。 問題是我不斷收到無效的校驗和錯誤。 我已將數據包設置為在 IP 層中具有 None 的校驗和(因為 Scapy 自動生成任何丟失的數據)但是我似乎無法為協議層(TCP、UDP 等)執行此操作。 因此校驗和錯誤仍然發生。
例子
###[ IP ]###
version = 4
ihl = 5
tos = 0x20
len = 436
id = 50116
flags =
frag = 0
ttl = 107
proto = udp
chksum = None --- Correct as Scapy will Autogen
src = 169.254.162.71
dst = 169.254.208.208
\options \
###[ UDP ]###
sport = 23616
dport = 23575
len = 416
chksum = 0x5f4a ---Incorrect Checksum
我在網上查了一下,發現了這個:
pkt.payload.chksum = None
然而這並沒有奏效。
pkt[Ether].src = "00:E0:4C:00:02:42"
pkt[Ether].dst = "00:E0:4C:01:08:99"
pkt[IP].src = "169.254.162.71" # i.e new_src_ip="255.255.255.255"
pkt[IP].dst = "169.254.208.208"
pkt[IP].chksum = None
pkt.payload.chksum = None
pkt.show()
示例 Output
###[ Ethernet ]###
dst = 00:E0:4C:01:08:99
src = 00:E0:4C:00:02:42
type = IPv4
###[ IP ]###
version = 4
ihl = 5
tos = 0x20
len = 436
id = 50116
flags =
frag = 0
ttl = 107
proto = udp
chksum = None
src = 169.254.162.71
dst = 169.254.208.208
\options \
###[ UDP ]###
sport = 23616
dport = 23575
len = 416
chksum = 0x5f4a ---Not set to None
請注意,我正在讀取的文件使用所有不同類型的協議,因此如果可能,解決方案應該是通用的。
pkt.payload
是 IP 層。 您正在執行兩次相同的操作。
你應該做:
pkt[IP].payload.chksum = None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.