资源简介
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)作进一步的了解。网站上还有更多的免费源码和工具。
能够截获所有的网络包。实现了一般防火墙的静态过滤功能(通过操作界面设置规则),
以及将所有的网络流量都记录在日志文件中,通过操作界面可以查看日志。
利用这个防火墙可以:
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个文件信息
评论
共有 条评论