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