簡體   English   中英

如何在Python中重組TCP數據包?

[英]How to reassemble TCP packets in Python?

如何在Python中重組TCP數據包? 有沒有現成的工具?

謝謝! :-)

要執行TCP重組,您需要使用像pynids http://jon.oberheide.org/pynids/這樣的東西。

您也可以使用pylibpcap,dpkt或scapy構建自己的。

有很多邊緣情況,TCP重組非常棘手。 如果你需要一個強大的解決方案,我不建議你自己做。

是的... TCP協議保證應用程序層只能查看已按順序組裝的數據包。 現在,如果您正在討論構建一些解析IP數據包本身的低級接口,您可以使用RAW套接字進行攻擊,這樣可以訪問IP頭信息。 這是一個例子:

import socket

# the public network interface
HOST = socket.gethostbyname(socket.gethostname())

# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))

# Include IP headers
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)

# receive all packages
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)

# receive a package
print s.recvfrom(65565)

# disabled promiscuous mode
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)

從python套接字模塊文檔中無恥地解除: http//docs.python.org/library/socket.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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