3

我需要在Linux中編寫一個數據包嗅探器來檢測發送的HTTPS數據包並從請求中保存url。我在security-freak找到了這個代碼並運行它。此代碼運行並只偵聽收到的數據包,但我需要在嗅探器中獲取發送的數據包。 如何在此代碼中獲取發送的數據包?在Linux中使用原始套接字進行數據包嗅探C

我不能使用libcap(禁止)之類的任何庫。 的代碼是:sniffer.c

回答

7

您應該使用ETH_P_ALL而不是ETH_P_IP作爲協議。 ETH_P_IP只偵聽傳入的IP數據包。

+0

如果目標是查看http數據包,爲什麼不使用ETH_P_IP?你不需要一切。 – JXG 2009-11-03 13:42:09

+2

目標是看到傳出的http數據包。 ETH_IP_P只能看到傳入的數據包。參見主題:http://lkml.indiana.edu/hypermail/linux/kernel/9604.1/0603.html – gte525u 2009-11-03 15:18:24

0

通過適當libpcapDNET使用您應該能夠得到所有網絡流量 期望的層上(協議 - 5)(也是本傳出)。 但你應該知道這一點。

你需要通過上述庫手冊,並找到適當的過濾。

+1

我們不能使用任何類似libcap或dnet的庫 – SjB 2009-10-28 15:12:47

+0

您確定您的系統允許檢測傳出數據包嗎?你可以使用libpcap來確定它是否可能。 – JXG 2009-11-03 13:56:53

+0

@bua「我不能使用libcap之類的任何庫(禁止)。」 – karimvai 2016-12-11 09:42:53

3

爲什麼你不能使用任何庫?家庭作業?

如果沒有來自您的代碼的示例,很難回答,例如您如何設置sll_pkttype

dnsiff套件中的urlsnarf工具值得一看。

+0

編輯並附上我的代碼 – SjB 2009-10-28 15:53:05