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