• 大小: 33KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 程序  

资源简介

一个简单的个人防火墙程序,该程序可以进行简单的网络安全防护。

资源截图

代码片段和文件信息

/*

  DrvFltIp.C

  Author: your name
  Last Updated: 2001-01-01/0101

  This framework is generated by QuickSYS.

*/

#include 
#include 
#include 
#include 
#include 
#include “DrvFltIp.h“

#if DBG
#define dprintf DbgPrint
#else
#define dprintf(x)
#endif

NTSTATUS DrvDispatch(IN PDEVICE_object Deviceobject IN PIRP Irp);
VOID DrvUnload(IN PDRIVER_object Driverobject);

NTSTATUS SetFilterFunction(PacketFilterExtensionPtr filterFunction);

NTSTATUS AddFilterToList(IPFilter *pf);
void ClearFilterList(void);
PF_FORWARD_ACTION cbFilterFunction(IN unsigned char *PacketHeaderIN unsigned char *Packet IN unsigned int PacketLength IN unsigned int RecvInterfaceIndex IN unsigned int SendInterfaceIndex IN unsigned long RecvlinkNextHop IN unsigned long SendlinkNextHop);

#define NT_DEVICE_NAME L“\\Device\\DrvFltIp“
#define DOS_DEVICE_NAME L“\\DosDevices\\DrvFltIp“


struct filterList *first = NULL;
struct filterList *last = NULL;

/*++

Routine Description:

    Installable driver initialization entry point.
    This entry point is called directly by the I/O system.

Arguments:

    Driverobject - pointer to the driver object

    RegistryPath - pointer to a unicode string representing the path
                   to driver-specific key in the registry

Return Value:

    STATUS_SUCCESS if successful
    STATUS_UNSUCCESSFUL otherwise

--*/
NTSTATUS DriverEntry(IN PDRIVER_object Driverobject IN PUNICODE_STRING RegistryPath)
{

    PDEVICE_object         deviceobject = NULL;
    NTSTATUS               ntStatus;
    UNICODE_STRING         deviceNameUnicodeString;
    UNICODE_STRING         devicelinkUnicodeString;

dprintf(“DrvFltIp.SYS: entering DriverEntry\n“);


//we have to create the device
RtlInitUnicodeString(&deviceNameUnicodeString NT_DEVICE_NAME);

ntStatus = IoCreateDevice(Driverobject 
0
&deviceNameUnicodeString 
FILE_DEVICE_DRVFLTIP
0
FALSE
&deviceobject);


    if ( NT_SUCCESS(ntStatus) )
    {
    
        // Create a symbolic link that Win32 apps can specify to gain access
        // to this driver/device
        RtlInitUnicodeString(&devicelinkUnicodeString DOS_DEVICE_NAME);

        ntStatus = IoCreateSymboliclink(&devicelinkUnicodeString &deviceNameUnicodeString);

        if ( !NT_SUCCESS(ntStatus) )
        {
            dprintf(“DrvFltIp.SYS: IoCreateSymboliclink failed\n“);
        }

        //
        // Create dispatch points for device control create close.
        //

        Driverobject->MajorFunction[IRP_MJ_CREATE]         =
        Driverobject->MajorFunction[IRP_MJ_CLOSE]          =
        Driverobject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DrvDispatch;
        Driverobject->DriverUnload                         = DrvUnload;
    }

    if ( !NT_SUCCESS(ntStatus) )
    {
        dprintf(“Error in initia

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3957  2002-12-22 01:18  2003819926451\DrvFltIp.sys

     文件       1078  2002-12-20 22:18  2003819926451\testDrv\res\testDrv.ico

     文件        399  2002-12-20 22:18  2003819926451\testDrv\res\testDrv.rc2

    ..AD...         0  2002-12-20 22:34  2003819926451\testDrv\res

     文件        731  2002-12-20 23:21  2003819926451\testDrv\resource.h

     文件       1161  2002-12-21 14:02  2003819926451\testDrv\sockUtil.cpp

     文件        147  2002-12-21 13:40  2003819926451\testDrv\sockutil.h

     文件        209  2002-12-20 22:18  2003819926451\testDrv\StdAfx.cpp

     文件       1054  2002-12-20 22:18  2003819926451\testDrv\StdAfx.h

     文件      14430  2002-12-22 01:22  2003819926451\testDrv\TDriver.cpp

     文件       2812  2002-12-19 14:34  2003819926451\testDrv\TDriver.h

     文件       1165  2002-12-22 01:24  2003819926451\testDrv\testDrv.clw

     文件       2077  2002-12-20 22:18  2003819926451\testDrv\testDrv.cpp

     文件       4428  2002-12-22 01:41  2003819926451\testDrv\testDrv.dsp

     文件       1335  2002-12-20 22:18  2003819926451\testDrv\testDrv.h

     文件       5396  2002-12-22 01:31  2003819926451\testDrv\testDrv.rc

     文件       6483  2002-12-22 01:51  2003819926451\testDrv\testDrvDlg.cpp

     文件       1528  2002-12-22 01:24  2003819926451\testDrv\testDrvDlg.h

     文件        164  2005-02-08 16:58  2003819926451\testDrv\『源码天空』.url

     文件        164  2005-02-08 16:58  2003819926451\testDrv\免费『商业源码』.url

     文件       1619  2006-07-30 15:23  2003819926451\testDrv\使用说明.txt

    ..AD...         0  2002-12-22 01:58  2003819926451\testDrv

     文件      13913  2002-12-22 01:12  2003819926451\DrvFltIp.c

     文件       5100  2002-12-22 01:41  2003819926451\DrvFltIp.dsp

     文件        740  2002-12-20 22:18  2003819926451\DrvFltIp.dsw

     文件       2894  2002-12-21 00:09  2003819926451\DrvFltIp.h

     文件         79  2002-12-21 00:47  2003819926451\sources

     文件        271  2000-07-26 18:37  2003819926451\makefile

     文件      24576  2002-12-22 01:57  2003819926451\testDrv.exe

     文件        164  2005-02-08 16:58  2003819926451\『源码天空』.url

............此处省略6个文件信息

评论

共有 条评论