簡體   English   中英

如何配置我的數據包 Scapy 的協議層?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM