• 大小: 321.72 KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-07-25
  • 语言: 其他
  • 标签:

资源简介

Windows 2K 下的一款简易型网关软件防火墙,他处于链路层上网络层下,

能够截获所有的网络包。实现了一般防火墙的静态过滤功能(通过操作界面设置规则),

以及将所有的网络流量都记录在日志文件中,通过操作界面可以查看日志。



利用这个防火墙可以:

1. 作为研究防火墙的基础。

2. 作进一步的开发,加密网络数据。

3. 截获所有网络包,对网络包的内容进行分析,从而做成一个防病毒的防火墙。

4. 进行email监控。

5. NAT。

6. 通过源码还可以学到很多编程的技术。

7. 当然,还可以做很多别的事情,只要你想得到。



这款软件由三个部分构成,底层的NDIS驱动,应用层的DLL和EXE。目前,只提供DLL和

EXE的代码,如果有需要NDIS驱动的朋友,可以给我发邮件mail:info@netwall.cn.



另外,我们还开发出了全球第一款Windows 2K平台上的企业级防火墙,技术先进,功能强大,

有兴趣的朋友可以登录我们的网站(http://www.netwall.cn)作进一步的了解。网站上还有更多的免费源码和工具。

资源截图

代码片段和文件信息

//if you use this code in a mfc program:
//add the header stdafx.h or disable precompiled header
//Unless you do it when compiling  vc will say: Unexpected end 
//of file while looking for precompiled header

#include “stdafx.h“

#include 

#include 
#include “Driver.h“
#include “logprintcomm.h“

//Constructor. Initialize variables.
CDriver::CDriver(void)
{
driverHandle    = NULL;
   
removable       = TRUE;

driverName      = NULL;
driverPath      = NULL;
driverDosName   = NULL;

initialized     = FALSE;
loaded          = FALSE;
started         = FALSE;
}

//
// Destructor. Free resources and unload the driver.
//
CDriver::~CDriver(void)
{
if (NULL != driverHandle)
{
CloseHandle(driverHandle); 
driverHandle = NULL; 
}
   
    UnloadDriver();
}

//
// If removable = TRUE the driver isnt unload when exit
//
void CDriver::SetRemovable(BOOL value)
{
removable = value;
}

//
//is driver initialized?
//
BOOL CDriver::IsInitialized(void)
{
return initialized;
}

//
// is driver loaded?
BOOL CDriver::IsLoaded(void)
//
{
return loaded;
}

//
// is driver started?
//
BOOL CDriver::IsStarted(void)
{
return started;
}

//
// Init the driver class variables
//
DWORD CDriver::InitDriver(LPCTSTR path)
{
// If already initialized first unload
if (initialized)
{
if (DRV_SUCCESS != UnloadDriver())
        {
            return DRV_ERROR_ALREADY_INITIALIZED;
        }
}

// If yes i analized the path to extract driver name
driverPath = (LPTSTR)malloc(strlen(path) + 1);

if (NULL == driverPath)
    {
        return DRV_ERROR_MEMORY;
    }

strcpy(driverPath path);

// First I search the last backslash
LPTSTR sPos1 = strrchr(driverPath (int)‘\\‘);

// If null the string havent any backslash
if (sPos1 == NULL)
    {
        sPos1 = driverPath;
    }

// Now i search .sys
LPTSTR sPos2 = strrchr(sPos1 (int)‘.‘);

if (sPos2 == NULL || sPos1 > sPos2)
{
free(driverPath);
driverPath = NULL;

return DRV_ERROR_INVALID_PATH_OR_FILE;
}

// Extract the driver name
driverName = (LPTSTR)malloc(sPos2 - sPos1);

if (NULL == driverName)
{
free(driverPath);
driverPath = NULL;

return DRV_ERROR_MEMORY;
}

memcpy(driverName sPos1 + 1 sPos2 - sPos1 - 1);

driverName[sPos2 - sPos1 - 1] = 0;

//driverDosName = \\.\driverName 
driverDosName = (LPTSTR)malloc(strlen(driverName) + 5);

if (NULL == driverDosName)
{
free(driverPath);
driverPath = NULL;

free(driverName);
driverName = NULL;

return DRV_ERROR_MEMORY;
}

sprintf(driverDosName “\\\\.\\%s“ driverName);


initialized = TRUE;
return DRV_SUCCESS;
}

//
// Init the driver class variables
//
DWORD CDriver::InitDriver(LPCTSTR name LPCTSTR path LPCTSTR dosName)
{
// If already initialized first unload
if (initialized)
{
if (DRV_SUCCESS != UnloadDriver

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

     目录          0  2003-05-29 22:36  NetWall_Lite

     目录          0  2003-05-29 22:37  NetWall_Lite\bin

     文件       2265  2003-05-29 20:17  NetWall_Lite\bin\netwall.inf

     文件      46548  2003-05-29 20:16  NetWall_Lite\bin\netwall.sys

     文件     237618  2003-05-29 20:20  NetWall_Lite\bin\NetWall_d.dll

     文件     213042  2003-05-29 22:35  NetWall_Lite\bin\NetWall_d.exe

     文件       1578  2003-05-29 20:15  NetWall_Lite\bin\netwall_m.inf

     目录          0  2003-05-29 22:36  NetWall_Lite\dll

     目录          0  2003-05-29 22:36  NetWall_Lite\dll\NetWallIM

     文件      40521  2003-04-13 16:28  NetWall_Lite\dll\NetWallIM\Driver.cpp

     文件       4226  2003-04-13 16:24  NetWall_Lite\dll\NetWallIM\Driver.h

     文件       4974  2003-04-12 18:28  NetWall_Lite\dll\NetWallIM\NetWall Dll.dsp

     文件       2091  2003-05-29 20:20  NetWall_Lite\dll\NetWallIM\NetWall Dll.plg

     文件      20868  2003-05-29 20:20  NetWall_Lite\dll\NetWallIM\NetWallAPI.cpp

     文件       1282  2003-03-29 00:29  NetWall_Lite\dll\NetWallIM\ReadMe.txt

     文件        298  2003-03-29 00:29  NetWall_Lite\dll\NetWallIM\StdAfx.cpp

     文件        905  2003-04-06 21:33  NetWall_Lite\dll\NetWallIM\StdAfx.h

     目录          0  2003-05-29 22:40  NetWall_Lite\doc

     文件       2391  2003-05-29 22:40  NetWall_Lite\doc\Readme.txt

     目录          0  2003-05-29 22:36  NetWall_Lite\exe

     目录          0  2003-05-29 22:36  NetWall_Lite\exe\NetWallIM

     文件      11013  2003-05-29 21:49  NetWall_Lite\exe\NetWallIM\AddRuleDlg.cpp

     文件       1928  2003-04-03 17:01  NetWall_Lite\exe\NetWallIM\AddRuleDlg.h

     文件       5643  2003-04-03 17:12  NetWall_Lite\exe\NetWallIM\DisplayRuleView.cpp

     文件       2118  2003-04-02 17:00  NetWall_Lite\exe\NetWallIM\DisplayRuleView.h

     文件      12885  2003-04-14 22:12  NetWall_Lite\exe\NetWallIM\LogListView.cpp

     文件       2739  2003-04-14 21:00  NetWall_Lite\exe\NetWallIM\LogListView.h

     文件      64269  2003-04-14 23:11  NetWall_Lite\exe\NetWallIM\MainFrm.cpp

     文件       5635  2003-04-14 23:00  NetWall_Lite\exe\NetWallIM\MainFrm.h

     文件       1990  2003-03-29 01:22  NetWall_Lite\exe\NetWallIM\NetWall Exe.clw

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

评论

共有 条评论