資源簡介
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個文件信息
評論
共有 條評論