• 大小: 2.8MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-07
  • 语言: 其他
  • 标签: spi  winsock  拦截  

资源简介

SPI网络数据包拦截程序源码,用户态防火墙雏形,来自Windows防火墙与网络封包截获技术中的PacketCapture

资源截图

代码片段和文件信息

//——————————————————————————————————————
/*
文件: XInstall.cpp

说明:
——————————————————————————
用来安装过滤性质的自定义基础服务提供者。
——————————————————————————

工程: Xfilter 个人防火墙
作者: 朱雁辉,朱雁冰
创建日期: 2001/08/28
网址: http://www.xfilt.com
电子邮件: xstudio@xfilt.com
版权所有 (c) 2001-2002 X 工作室

警告:
——————————————————————————
本电脑程序受著作权法的保护。未经授权,不能使用
和修改本软件全部或部分源代码。凡擅自复制、盗用或散
布此程序或部分程序或者有其它任何越权行为,将遭到民
事赔偿及刑事的处罚,并将依法以最高刑罚进行追诉。

凡通过合法途径购买本软件源代码的用户被默认授权
可以在自己的程序中使用本软件的部分代码,但作者不对
代码产生的任何后果负责。

使用了本软件代码的程序只能以可执行文件形式发布,
未经特别许可,不能将含有本软件源代码的源程序以任何
形式发布。
——————————————————————————
*/
//——————————————————————————————————————

#include “stdafx.h“
#include “XInstall.h“

BOOL CXInstall::IsWinsock2()
{
WORD wVersionRequested = MAKEWORD(2 0);
WSADATA wsaData;

if(WSAStartup(wVersionRequested &wsaData) != 0)
return FALSE;
if (LOBYTE(wsaData.wVersion) != 2)
{
WSACleanup();
return FALSE; 
}

return TRUE;
}

BOOL CXInstall::IsInstalled(TCHAR *sPathName)
{
TCHAR tsPathName[MAX_PATH];

if( ReadReg(REG_INSTALL_PATH_ITEM 
(BYTE*)tsPathName 
MAX_PATH 
HKEY_LOCAL_MACHINE 
REG_INSTALL_KEY REG_SZ


{
if(sPathName != NULL)
_tcscpy(sPathName tsPathName);
return TRUE;
}

return FALSE;
}

int CXInstall::InstallProvider(TCHAR *sPathName)
{
if(IsInstalled())
return XERR_PROVIDER_ALREADY_INSTALL;

_tcscpy(m_sPathName sPathName);

int iRet;
if((iRet = EnumHookKey(FALSE)) != XERR_SUCCESS)
return iRet;

if(!SaveReg(REG_INSTALL_PATH_ITEM (BYTE*)sPathName _tcslen(sPathName)
HKEY_LOCAL_MACHINE REG_INSTALL_KEY REG_SZ))
return XERR_PROVIDER_SAVE_PATH_FAILED;

return XERR_SUCCESS;
}

BOOL CXInstall::RemoveProvider()
{
int iRet = XERR_SUCCESS;

if(!IsInstalled())
return XERR_PROVIDER_NOT_INSTALL;

if(iRet = EnumHookKey(TRUE) != XERR_SUCCESS)
return iRet;

if(!DeleteReg())
return XERR_PROVIDER_REG_DELETE_FAILED;

return XERR_SUCCESS;
}

//****************************************************************************
// 私有安装函数
//****************************************************************************

int CXInstall::EnumHookKey(BOOL IsRemove)
{
HKEY hkey = NULL;

if(RegOpenKeyEx(HKEY_LOCAL_MACHINE
 REG_PROTOCOL_CATALOG_KEY 0 KEY_READ &hkey) != ERROR_SUCCESS)
return XERR_PROVIDER_OPEN_REG_FAILED;
__try
{
TCHAR sSubKey[MAX_PATH];
DWORD dwIndex = 0;
int   iRet = 0;

while(RegEnumKey(hkey dwIndex sSubKey MAX_PATH) == ERROR_SUCCESS)
{
if((iRet = SaveHookKey(hkey sSubKey IsRemove)) != XERR_SUCCESS)
return iRet;
dwIndex ++;
}
}
__finally
{
RegCloseKey(hkey);
}

return XERR_SUCCESS;
}

int CXInstall::SaveHookKey(HKEY hkey LPCTSTR sSubKey BOOL IsRemove)
{
HKEY hSubKey = NULL;
BYTE ItemValue   [MAX_PROTOCOL_CATALOG_LENTH];
DWORD ItemSize = MAX_PROTOCOL_CATALOG_LENTH;

if(RegOpenKeyEx(hkey
 sSubKey 0 KEY_A

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

     文件       1205  2001-12-26 15:07  PacketCapture\Common\Debug.h

     文件       6669  2008-05-04 11:47  PacketCapture\Common\XInstall.cpp

     文件       2203  2001-12-31 19:11  PacketCapture\Common\XInstall.h

     文件     402432  2008-05-05 10:01  PacketCapture\InstallExe\Debug\Install.pdb

     文件      11451  2008-05-05 10:01  PacketCapture\InstallExe\Debug\InstallExe.obj

     文件    3304996  2008-05-05 10:01  PacketCapture\InstallExe\Debug\InstallExe.pch

     文件      58565  2008-05-05 10:01  PacketCapture\InstallExe\Debug\StdAfx.obj

     文件     132096  2008-05-05 10:01  PacketCapture\InstallExe\Debug\vc60.idb

     文件     118784  2008-05-05 10:01  PacketCapture\InstallExe\Debug\vc60.pdb

     文件      14806  2008-05-05 10:01  PacketCapture\InstallExe\Debug\XInstall.obj

     文件       2500  2008-05-05 10:00  PacketCapture\InstallExe\InstallExe.cpp

     文件       4596  2001-09-13 16:13  PacketCapture\InstallExe\InstallExe.dsp

     文件        528  2008-05-05 09:53  PacketCapture\InstallExe\InstallExe.dsw

     文件      50176  2008-05-05 10:01  PacketCapture\InstallExe\InstallExe.ncb

     文件      48640  2008-05-05 10:01  PacketCapture\InstallExe\InstallExe.opt

     文件       1860  2008-05-05 10:01  PacketCapture\InstallExe\InstallExe.plg

     文件       1232  2001-08-29 00:14  PacketCapture\InstallExe\ReadMe.txt

     文件        297  2001-08-29 00:14  PacketCapture\InstallExe\StdAfx.cpp

     文件        862  2001-09-13 14:05  PacketCapture\InstallExe\StdAfx.h

     文件        754  2001-09-13 14:06  PacketCapture\PacketCapture.dsw

     文件      74752  2008-05-04 22:00  PacketCapture\PacketCapture.ncb

     文件      55808  2008-05-04 22:00  PacketCapture\PacketCapture.opt

     文件        688  2002-01-26 15:04  PacketCapture\Readme.txt

     文件     192641  2008-05-05 10:01  PacketCapture\Release\Install.exe

     文件    1364096  2008-05-05 17:10  PacketCapture\Release\TcpIpDog.dll

     文件      26604  2008-05-05 13:27  PacketCapture\TcpIpDog\Debug\Overlapped.obj

     文件      60592  2008-05-05 13:27  PacketCapture\TcpIpDog\Debug\StdAfx.obj

     文件        668  2008-05-05 13:27  PacketCapture\TcpIpDog\Debug\TcpIpDog.exp

     文件       1964  2008-05-05 13:27  PacketCapture\TcpIpDog\Debug\TcpIpDog.lib

     文件      81395  2008-05-05 17:10  PacketCapture\TcpIpDog\Debug\Tcpipdog.obj

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

评论

共有 条评论