.2.1
.2 SPI
通過以上分析看來,通過hook api的方法,可以方便的進(jìn)行IP機(jī)端口過濾,還能對信息內(nèi)容進(jìn)行過濾。但是它是位于ws2_32.dll之上的,屬于用應(yīng)用層的攔截,只能對TCP/UDP等常見的協(xié)議進(jìn)行較高層次的攔截。所以,市面上見到的防火墻軟件很少使用這種技術(shù)實(shí)現(xiàn)。
下面再介紹一種在應(yīng)用層的攔截?cái)?shù)據(jù)包的技術(shù)SPI(網(wǎng)絡(luò)服務(wù)提供者接口)。如果想詳細(xì)的了解關(guān)于SPI防火墻的相關(guān)知識,請參考《Windows防火墻與網(wǎng)絡(luò)風(fēng)暴截獲技術(shù)》。
2.2.2 傳輸層實(shí)現(xiàn)
以上兩種方法都是在應(yīng)用層進(jìn)行攔截過濾,在應(yīng)用層,數(shù)據(jù)包還沒有被切片處理,所以得到的信息很完整,很容易實(shí)現(xiàn)對內(nèi)容的過濾。而且由于實(shí)現(xiàn)在應(yīng)用層,所以有很好的平臺無關(guān)性。只要安裝了Winsock2的機(jī)器都可以使用這種方式實(shí)現(xiàn)過濾。但是他也有弊端,由于這兩種攔截技術(shù)都是圍繞ws2_32.dll進(jìn)行的,所以如果沒有使用Winsock2 API發(fā)送或接收的數(shù)據(jù),將不能攔截,比如直接使用驅(qū)動層的函數(shù)進(jìn)行收發(fā)的數(shù)據(jù)包。而現(xiàn)在那些無聊的黑客很容易使用驅(qū)動層的函數(shù)進(jìn)行收發(fā)惡意數(shù)據(jù),所以,市面上見到的防火墻大多不使用這兩種技術(shù)。
下面帶大家進(jìn)入驅(qū)動層的攔截。當(dāng)然,驅(qū)動層攔截程序要比上面提供的兩種方法相對復(fù)雜一些。