2012-03-08 81 views
0

我想使用winpcap修改數據包數據,並將修改後的數據包發送到目標IP而不是原始數據包。我怎麼能意識到它?任何人都可以提出一些想法嗎?例如哪些API可以實現它?如果可能的話,幾個步驟或其他文件更受讚賞。非常感謝!如何使用winpcap修改數據包

+0

你知道PCap代表「Packet * Capture *」,對嗎?你是如何得出結論的:你可以用winpcap做類似的事情? – 2012-03-08 01:44:51

+0

爲winpcap可以捕獲數據包,我也用它來發送原始套接字之前,我想它可能會被用來修改數據包的數據。只是一個假設@NiklasB。 – Searene 2012-03-08 05:02:01

回答

0

我想你需要TUN/TAP而不是WinPcap來實現你在你的問題中描述的任務。請在這個文件看看:

可惜這不是那麼容易的WinPcap使用。所以你可能想採取不同的方法。您能否更具體地瞭解您的需求,以便我們可以提出更簡單的替代方案,例如。在Python中編寫TCP網關?這個小工具可能是一個暗示你提供,你並不需要調整以太網幀:

1

隨着使用Winpcap,您可以通過packet[i]=任何十六進制修改數據包內容值(例如0xFF)。

記住使用i>13用於數據修改爲:

  • packet[0 -> 5]目的地MAC
  • packet[6 -> 11]源MAC
  • packet[12 -> 13]以太網類型
  • frompacket[14 -> onwards]個數據字節

記住MAX Ethernet PACKET長度爲1500 bytes