资源简介
网络防火墙就是一个位于计算机和它所连接的网络之间的软件。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
这里首先论述了各种常用的网络封包截获方法,包括传输层过滤驱动程序、NDIS中间驱动程序和Winsock 2 SPI。然后以Xfilter个人防火墙为实例,从功能分析、模块设计、文件结构定义、界面设计到编码、制作帮助文件及制作安装盘,完整地介绍了软件开发的全过程。因此,从本书中不仅可以学到较为全面的封包截获技术,而且可以借鉴工程化的方法制作自己的软件。
网络防火墙源码,对防火墙感兴趣的人可以下载。全套代码,包里还有对应网站的网页。
代码片段和文件信息
///////////////////////////////////////////////////////////////////////
// Copyright (c) 2001-2002
// XStudio Technology All Right Reserved.
// Author: Tony Zhu
// 2001-7-16 Create
// summary:
// This Program to demo the Intermediate TDI Driver.
// This is main file. It include:
// 1. initialize function : DriverEntry
// 2. Unload function : PacketUnload
// 3. Dispatch function : PacketDispatch
///////////////////////////////////////////////////////////////////////
#include
#include
#include
#include “packet.h“
NTSTATUS
DriverEntry(
IN PDRIVER_object Driverobject
IN PUNICODE_STRING RegistryPath
)
{
NTSTATUS status = 0;
ULONG i;
DBGPRINT(“DriverEntry Loading...\n“);
Driverobject->DriverUnload = PacketUnload;
for (i=0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
{
Driverobject->MajorFunction[i] = PacketDispatch;
}
status = TCPFilter_Attach(DriverobjectRegistryPath);
return status;
}
VOID
PacketUnload(
IN PDRIVER_object Driverobject
)
{
PDEVICE_object Deviceobject;
PDEVICE_object OldDeviceobject;
PTDIH_DeviceExtension pTDIH_DeviceExtension;
DBGPRINT(“DriverEntry unLoading...\n“);
Deviceobject = Driverobject->Deviceobject;
while (Deviceobject != NULL)
{
OldDeviceobject = Deviceobject;
pTDIH_DeviceExtension
= (PTDIH_DeviceExtension )Deviceobject->DeviceExtension;
if( pTDIH_DeviceExtension->NodeType
== TDIH_NODE_TYPE_TCP_FILTER_DEVICE )
TCPFilter_Detach( Deviceobject ); // Calls IoDeleteDevice
else
IoDeleteDevice(OldDeviceobject);
Deviceobject = Deviceobject->NextDevice;
}
}
NTSTATUS
PacketDispatch(
IN PDEVICE_object Deviceobject
IN PIRP Irp
)
{
NTSTATUS RC = STATUS_SUCCESS;
PTDIH_DeviceExtension pTDIH_DeviceExtension;
PIO_STACK_LOCATION IrpStack;
PIO_STACK_LOCATION NextIrpStack;
pTDIH_DeviceExtension
= (PTDIH_DeviceExtension )(Deviceobject->DeviceExtension);
IrpStack = IoGetCurrentIrpStackLocation(Irp);
switch(IrpStack->MajorFunction)
{
case IRP_MJ_CREATE:
DBGPRINT(“PacketDispatch(IRP_MJ_CREATE)...\n“);
break;
case IRP_MJ_CLOSE:
DBGPRINT(“PacketDispatch(IRP_MJ_CLOSE)...\n“);
break;
case IRP_MJ_CLEANUP:
DBGPRINT(“PacketDispatch(IRP_MJ_CLEANUP)...\n“);
break;
case IRP_MJ_INTERNAL_DEVICE_CONTROL:
switch (IrpStack->MinorFunction)
{
case TDI_ACCEPT:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL\
[TDI_ACCEPT])...\n“);
break;
case TDI_ACTION:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL\
[TDI_ACTION])...\n“);
break;
case TDI_ASSOCIATE_ADDRESS:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL\
[TDI_ASSOCIATE_ADDRESS])...\n“);
break;
case TDI_DISASSOCIATE_ADDRESS:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL\
[TDI_DISASSOCIATE_ADDRESS])...\n“);
break;
case TDI_CON
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 267 2001-07-10 15:27 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\MAKEFILE
文件 10109 2002-01-08 19:46 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Packet.c
文件 3474 2002-01-08 19:46 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\PACKET.H
文件 66 2006-08-28 18:19 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\E书中国.htm
文件 940 2002-01-24 15:21 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\FilterTdiDriver.reg
文件 6303 2001-12-28 01:28 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\FilterTdiDriver.sys
文件 69352 2001-12-28 01:38 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\SAMPLE.TXT
文件 2146 2006-08-28 18:19 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\使用说明.txt
文件 63 2006-08-28 18:19 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\教育中国.htm
文件 64 2006-08-28 18:19 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Setup\网志中国.htm
文件 202 2002-01-02 13:15 Windows防火墙与网络封包截获技术源代码\FilterTdiDriver\Sources
文件 8371 2001-07-27 19:03 Windows防火墙与网络封包截获技术源代码\GuiDesign\frmAcl.frm
文件 3270 2001-07-27 19:03 Windows防火墙与网络封包截获技术源代码\GuiDesign\frmAcl.frx
文件 11769 2001-07-27 19:03 Windows防火墙与网络封包截获技术源代码\GuiDesign\frmInfo.frm
文件 2236 2001-07-27 19:03 Windows防火墙与网络封包截获技术源代码\GuiDesign\frmInfo.frx
文件 25946 2001-07-28 18:39 Windows防火墙与网络封包截获技术源代码\GuiDesign\frmMain.frm
文件 9950 2001-07-28 18:39 Windows防火墙与网络封包截获技术源代码\GuiDesign\frmMain.frx
文件 192 2001-07-27 15:24 Windows防火墙与网络封包截获技术源代码\GuiDesign\MSSCCPRJ.SCC
文件 65536 2002-05-28 12:41 Windows防火墙与网络封包截获技术源代码\GuiDesign\XFILTER.EXE
文件 959 2001-07-28 18:39 Windows防火墙与网络封包截获技术源代码\GuiDesign\XFILTER.VBP
文件 156 2001-07-29 19:22 Windows防火墙与网络封包截获技术源代码\GuiDesign\XFILTER.VBW
文件 267 2001-07-10 15:27 Windows防火墙与网络封包截获技术源代码\MinDriver\MAKEFILE
文件 1008 2001-09-18 15:27 Windows防火墙与网络封包截获技术源代码\MinDriver\MinDriver.c
文件 1005 2002-01-02 12:34 Windows防火墙与网络封包截获技术源代码\MinDriver\MinDriver.h
文件 842 2002-01-23 11:04 Windows防火墙与网络封包截获技术源代码\MinDriver\MinDriver.reg
文件 1603 2001-09-18 15:27 Windows防火墙与网络封包截获技术源代码\MinDriver\MinDriver.sys
文件 81 2001-09-19 01:40 Windows防火墙与网络封包截获技术源代码\MinDriver\Sources
文件 276 2002-01-26 15:15 Windows防火墙与网络封包截获技术源代码\MinDriverInVc\Build.bat
文件 66 2006-08-28 18:19 Windows防火墙与网络封包截获技术源代码\MinDriverInVc\MinDriver\E书中国.htm
文件 267 2001-07-10 15:27 Windows防火墙与网络封包截获技术源代码\MinDriverInVc\MinDriver\MAKEFILE
............此处省略357个文件信息
评论
共有 条评论