2010-12-08 59 views
2

注入的數據包,該數據包目前正在考慮僅使用pcap嗅探相同接口的可能性,並且還使用pcap_inject注入數據包。阻止libpcap捕獲使用pcap_inject()

的東西可以很容易地使用可以解決兩種:

  • 持續跟蹤校驗/大緩慢地圖/,
  • 校驗跟蹤 - 直到所有數據注入,比如說,第一HTTP請求;
  • 黑客BPF/libipq/Netfilter的攜帶額外的參數,每個真正的PHY包

但是:

PCAP監聽的eth0 /真實世界的情況更接近 「PCAP監聽,並通過源神奇滴」/, pcap通過eth0的句柄發送數據包,以便它們可以被路由出去。 libpcap不捕獲使用相同庫注入到相同接口的數據包的理論基礎是什麼 - 例如,注入的數據包沒有經過所有伯克利的數據包過濾器代碼?

實用測試待定。

回答

1

你的問題很難解析,但如果我正確理解你,你正在尋找一種方法來捕獲不包括你正在注入的數據包。您可以通過使用捕獲過濾器,看起來只有在什麼被髮送到你的機器上的相關接口做到這一點...

ether dst aa:bb:cc:dd:ee:ff 

...或者捕獲所有除什麼是對相關interfance發送:

not ether src aa:bb:cc:dd:ee:ff 

這會影響流量比你注入其他什麼你的機器,但如果你捕捉和注入,那麼你可能不關心你自己的機器的數據包呢。如果您需要更多的自定義功能,則應該不難識別剛剛在捕獲的數據包中發送的數據包。 (我想這就是你的意思是校驗和,但我沒有看到一個直接的表問題。)

+0

這是非常簡單的:)有你的賞金。其他人再次提到了skbuff子系統,現在還沒有這麼遠.. – 2010-12-23 14:06:19

1

可能只是忽略接收路徑中屬性爲skb->pkt_type == PACKET_OUTGOING的數據包。

+0

...如果你正在運行Linux。如果你沒有運行Linux,你必須使用其他一些機制。 – 2013-08-05 18:23:04