如果不用,那么用什么方法来实现
如果一定要用,如何实现?
那里有这种方法的文档?谢谢
22 个解决方案
#1
关注!!
#2
就我了解要用DDK,通过过滤驱动屏蔽掉对指定端口的访问。
#3
学习一下,突然发现很佩服月儿mm
#4
防火墙开发技术。
需要使用驱动,可以使用tdi,ndis.ddk中有passthru的例子参考,更多的去驱动开发网上问吧
需要使用驱动,可以使用tdi,ndis.ddk中有passthru的例子参考,更多的去驱动开发网上问吧
#5
PfAddFiltersToInterface及相关函数,自己查MSDN。
#6
驱动开发
#7
SPI也行吧!
#8
谢谢各位的关注,解决了可以另开贴加分!]
to danyueer(淡月儿:清水上的足音)
能说说如何实现的吗?
to kingzai()
能介绍一下tdi,ndis吗?还有哪个驱动网站比较好呢?
to Hendy_So()
PfAddFiltersToInterface是哪里的函数?用它自己就可以吗?
to oyljerry(☆勇敢的心☆-要开始写论文了)
能不能具体说说呢
to keios(C->C++->java->C 循环中)
SPI是一种方法?它和DDK有关嘛?实现的方法是什么?
to danyueer(淡月儿:清水上的足音)
能说说如何实现的吗?
to kingzai()
能介绍一下tdi,ndis吗?还有哪个驱动网站比较好呢?
to Hendy_So()
PfAddFiltersToInterface是哪里的函数?用它自己就可以吗?
to oyljerry(☆勇敢的心☆-要开始写论文了)
能不能具体说说呢
to keios(C->C++->java->C 循环中)
SPI是一种方法?它和DDK有关嘛?实现的方法是什么?
#9
用Packet Filtering Functions对于不是很复杂的控制(比如你所说的屏蔽端口)应该是非常容易的方法了。它们是SDK中的函数。
#pragma hdrstop
#include "windows.h"
#include "Fltdefs.h"
// 需要加载"iphlpapi.lib"
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
// 一个创建网络包过滤接口
INTERFACE_HANDLE hInterface;
PfCreateInterface(0,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
FALSE,
TRUE,
&hInterface);
// 绑定需要网络包过滤的IP地址
BYTE localIp[] = {192,168,0,2};
PfBindInterfaceToIPAddress(hInterface, PF_IPV4, localIp);
// 现在我们开始过滤HTTP协议的的接口
FILTER_HANDLE fHandle;
// 填充过滤包的规则结构
PF_FILTER_DESCRIPTOR inFilter;
inFilter.dwFilterFlags = FD_FLAGS_NOSYN; //一直添这个值
inFilter.dwRule = 0; //一直添这个值
inFilter.pfatType = PF_IPV4; //用 ipV4 地址
inFilter.SrcAddr = localIp; //设置本地IP地址
inFilter.SrcMask = "\xff\xff\xff\xff"; //设置本地子网掩码
inFilter.wSrcPort = FILTER_TCPUDP_PORT_ANY; //任意来源端口
inFilter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY;
inFilter.DstAddr = 0; //任意目标地址
inFilter.DstMask = 0;
inFilter.wDstPort = 80; //目标端口 80(http 服务)
inFilter.wDstPortHighRange = 80;
inFilter.dwProtocol = FILTER_PROTO_TCP; // 过滤的协议
// 加入一个过滤接口
PfAddFiltersToInterface(hInterface, 1, &inFilter, 0, NULL, &fHandle);
// 请在这设置一个调试断点,然后看看你的IE是否不能访问WEB页. :)
// 移除过滤接口
PfRemoveFilterHandles(hInterface, 1, &fHandle);
PfUnBindInterface(hInterface);
PfDeleteInterface(hInterface);
return 0;
}
#pragma hdrstop
#include "windows.h"
#include "Fltdefs.h"
// 需要加载"iphlpapi.lib"
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
// 一个创建网络包过滤接口
INTERFACE_HANDLE hInterface;
PfCreateInterface(0,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
FALSE,
TRUE,
&hInterface);
// 绑定需要网络包过滤的IP地址
BYTE localIp[] = {192,168,0,2};
PfBindInterfaceToIPAddress(hInterface, PF_IPV4, localIp);
// 现在我们开始过滤HTTP协议的的接口
FILTER_HANDLE fHandle;
// 填充过滤包的规则结构
PF_FILTER_DESCRIPTOR inFilter;
inFilter.dwFilterFlags = FD_FLAGS_NOSYN; //一直添这个值
inFilter.dwRule = 0; //一直添这个值
inFilter.pfatType = PF_IPV4; //用 ipV4 地址
inFilter.SrcAddr = localIp; //设置本地IP地址
inFilter.SrcMask = "\xff\xff\xff\xff"; //设置本地子网掩码
inFilter.wSrcPort = FILTER_TCPUDP_PORT_ANY; //任意来源端口
inFilter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY;
inFilter.DstAddr = 0; //任意目标地址
inFilter.DstMask = 0;
inFilter.wDstPort = 80; //目标端口 80(http 服务)
inFilter.wDstPortHighRange = 80;
inFilter.dwProtocol = FILTER_PROTO_TCP; // 过滤的协议
// 加入一个过滤接口
PfAddFiltersToInterface(hInterface, 1, &inFilter, 0, NULL, &fHandle);
// 请在这设置一个调试断点,然后看看你的IE是否不能访问WEB页. :)
// 移除过滤接口
PfRemoveFilterHandles(hInterface, 1, &fHandle);
PfUnBindInterface(hInterface);
PfDeleteInterface(hInterface);
return 0;
}
#10
gz
#11
to Hendy_So() 你这个程序如何屏蔽两个以上的端口?
#12
ding
#13
那就多添加几个filter
#14
to Hendy_So()
谢谢,但是为什么我用你的程序之后不但不能上网,其他的程序比如ftp,qq都上不去,
改成23也上不去网?为什么?
谢谢,但是为什么我用你的程序之后不但不能上网,其他的程序比如ftp,qq都上不去,
改成23也上不去网?为什么?
#15
这个参数很复杂,我也就用上面例子试过,其它情况要靠自己试了。
用完后记着把过滤器删除。
用完后记着把过滤器删除。
#16
学习
#17
SPI也应该可以的。
#18
to Hendy_So()
你的程序可以屏蔽掉所有的端口,但是不能只屏蔽掉一个端口
to kugou123(酷狗)(http://www.mzkp.com/cooldog)
也谢谢你的关注。是的,keios(C->C++->java->C 循环中) 说过SPI可以
但是你们都惜字如金,而我又做这个不久,
所以我也不太明白,能不能指导我一下如何SPI编程?
亦或有没有有关文档?
to 其它好心人
你们能不能提供一些有关文档或者连接?谢谢
分不成问题,我还有600多分
你的程序可以屏蔽掉所有的端口,但是不能只屏蔽掉一个端口
to kugou123(酷狗)(http://www.mzkp.com/cooldog)
也谢谢你的关注。是的,keios(C->C++->java->C 循环中) 说过SPI可以
但是你们都惜字如金,而我又做这个不久,
所以我也不太明白,能不能指导我一下如何SPI编程?
亦或有没有有关文档?
to 其它好心人
你们能不能提供一些有关文档或者连接?谢谢
分不成问题,我还有600多分
#19
高手们,帮帮我吧,谢谢你们
#20
SPI是一种应用层的技术,位于ws2_32.dll之下,
参看MSDN: data transport [Winsock]
sample: lsp (Platform SDK)
参看MSDN: data transport [Winsock]
sample: lsp (Platform SDK)
#21
我顶
#22
我的那种方法可能半年前试过,当时好像是可以,不过现在试起来好像如你所说所有包都被丢弃了。不过看这个函数的参数,应该可以实现特定端口的屏蔽,可以自已多试试各种参数组合,也可以到网上查一查有没有此函数的用法。
另外,要写一个具有简单端口屏蔽功能的驱动也非常简单,把下面这个例子拿过来稍微修改一下就可以了:http://www.codeproject.com/internet/drvfltip.asp
另外,要写一个具有简单端口屏蔽功能的驱动也非常简单,把下面这个例子拿过来稍微修改一下就可以了:http://www.codeproject.com/internet/drvfltip.asp
#1
关注!!
#2
就我了解要用DDK,通过过滤驱动屏蔽掉对指定端口的访问。
#3
学习一下,突然发现很佩服月儿mm
#4
防火墙开发技术。
需要使用驱动,可以使用tdi,ndis.ddk中有passthru的例子参考,更多的去驱动开发网上问吧
需要使用驱动,可以使用tdi,ndis.ddk中有passthru的例子参考,更多的去驱动开发网上问吧
#5
PfAddFiltersToInterface及相关函数,自己查MSDN。
#6
驱动开发
#7
SPI也行吧!
#8
谢谢各位的关注,解决了可以另开贴加分!]
to danyueer(淡月儿:清水上的足音)
能说说如何实现的吗?
to kingzai()
能介绍一下tdi,ndis吗?还有哪个驱动网站比较好呢?
to Hendy_So()
PfAddFiltersToInterface是哪里的函数?用它自己就可以吗?
to oyljerry(☆勇敢的心☆-要开始写论文了)
能不能具体说说呢
to keios(C->C++->java->C 循环中)
SPI是一种方法?它和DDK有关嘛?实现的方法是什么?
to danyueer(淡月儿:清水上的足音)
能说说如何实现的吗?
to kingzai()
能介绍一下tdi,ndis吗?还有哪个驱动网站比较好呢?
to Hendy_So()
PfAddFiltersToInterface是哪里的函数?用它自己就可以吗?
to oyljerry(☆勇敢的心☆-要开始写论文了)
能不能具体说说呢
to keios(C->C++->java->C 循环中)
SPI是一种方法?它和DDK有关嘛?实现的方法是什么?
#9
用Packet Filtering Functions对于不是很复杂的控制(比如你所说的屏蔽端口)应该是非常容易的方法了。它们是SDK中的函数。
#pragma hdrstop
#include "windows.h"
#include "Fltdefs.h"
// 需要加载"iphlpapi.lib"
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
// 一个创建网络包过滤接口
INTERFACE_HANDLE hInterface;
PfCreateInterface(0,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
FALSE,
TRUE,
&hInterface);
// 绑定需要网络包过滤的IP地址
BYTE localIp[] = {192,168,0,2};
PfBindInterfaceToIPAddress(hInterface, PF_IPV4, localIp);
// 现在我们开始过滤HTTP协议的的接口
FILTER_HANDLE fHandle;
// 填充过滤包的规则结构
PF_FILTER_DESCRIPTOR inFilter;
inFilter.dwFilterFlags = FD_FLAGS_NOSYN; //一直添这个值
inFilter.dwRule = 0; //一直添这个值
inFilter.pfatType = PF_IPV4; //用 ipV4 地址
inFilter.SrcAddr = localIp; //设置本地IP地址
inFilter.SrcMask = "\xff\xff\xff\xff"; //设置本地子网掩码
inFilter.wSrcPort = FILTER_TCPUDP_PORT_ANY; //任意来源端口
inFilter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY;
inFilter.DstAddr = 0; //任意目标地址
inFilter.DstMask = 0;
inFilter.wDstPort = 80; //目标端口 80(http 服务)
inFilter.wDstPortHighRange = 80;
inFilter.dwProtocol = FILTER_PROTO_TCP; // 过滤的协议
// 加入一个过滤接口
PfAddFiltersToInterface(hInterface, 1, &inFilter, 0, NULL, &fHandle);
// 请在这设置一个调试断点,然后看看你的IE是否不能访问WEB页. :)
// 移除过滤接口
PfRemoveFilterHandles(hInterface, 1, &fHandle);
PfUnBindInterface(hInterface);
PfDeleteInterface(hInterface);
return 0;
}
#pragma hdrstop
#include "windows.h"
#include "Fltdefs.h"
// 需要加载"iphlpapi.lib"
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
// 一个创建网络包过滤接口
INTERFACE_HANDLE hInterface;
PfCreateInterface(0,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
FALSE,
TRUE,
&hInterface);
// 绑定需要网络包过滤的IP地址
BYTE localIp[] = {192,168,0,2};
PfBindInterfaceToIPAddress(hInterface, PF_IPV4, localIp);
// 现在我们开始过滤HTTP协议的的接口
FILTER_HANDLE fHandle;
// 填充过滤包的规则结构
PF_FILTER_DESCRIPTOR inFilter;
inFilter.dwFilterFlags = FD_FLAGS_NOSYN; //一直添这个值
inFilter.dwRule = 0; //一直添这个值
inFilter.pfatType = PF_IPV4; //用 ipV4 地址
inFilter.SrcAddr = localIp; //设置本地IP地址
inFilter.SrcMask = "\xff\xff\xff\xff"; //设置本地子网掩码
inFilter.wSrcPort = FILTER_TCPUDP_PORT_ANY; //任意来源端口
inFilter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY;
inFilter.DstAddr = 0; //任意目标地址
inFilter.DstMask = 0;
inFilter.wDstPort = 80; //目标端口 80(http 服务)
inFilter.wDstPortHighRange = 80;
inFilter.dwProtocol = FILTER_PROTO_TCP; // 过滤的协议
// 加入一个过滤接口
PfAddFiltersToInterface(hInterface, 1, &inFilter, 0, NULL, &fHandle);
// 请在这设置一个调试断点,然后看看你的IE是否不能访问WEB页. :)
// 移除过滤接口
PfRemoveFilterHandles(hInterface, 1, &fHandle);
PfUnBindInterface(hInterface);
PfDeleteInterface(hInterface);
return 0;
}
#10
gz
#11
to Hendy_So() 你这个程序如何屏蔽两个以上的端口?
#12
ding
#13
那就多添加几个filter
#14
to Hendy_So()
谢谢,但是为什么我用你的程序之后不但不能上网,其他的程序比如ftp,qq都上不去,
改成23也上不去网?为什么?
谢谢,但是为什么我用你的程序之后不但不能上网,其他的程序比如ftp,qq都上不去,
改成23也上不去网?为什么?
#15
这个参数很复杂,我也就用上面例子试过,其它情况要靠自己试了。
用完后记着把过滤器删除。
用完后记着把过滤器删除。
#16
学习
#17
SPI也应该可以的。
#18
to Hendy_So()
你的程序可以屏蔽掉所有的端口,但是不能只屏蔽掉一个端口
to kugou123(酷狗)(http://www.mzkp.com/cooldog)
也谢谢你的关注。是的,keios(C->C++->java->C 循环中) 说过SPI可以
但是你们都惜字如金,而我又做这个不久,
所以我也不太明白,能不能指导我一下如何SPI编程?
亦或有没有有关文档?
to 其它好心人
你们能不能提供一些有关文档或者连接?谢谢
分不成问题,我还有600多分
你的程序可以屏蔽掉所有的端口,但是不能只屏蔽掉一个端口
to kugou123(酷狗)(http://www.mzkp.com/cooldog)
也谢谢你的关注。是的,keios(C->C++->java->C 循环中) 说过SPI可以
但是你们都惜字如金,而我又做这个不久,
所以我也不太明白,能不能指导我一下如何SPI编程?
亦或有没有有关文档?
to 其它好心人
你们能不能提供一些有关文档或者连接?谢谢
分不成问题,我还有600多分
#19
高手们,帮帮我吧,谢谢你们
#20
SPI是一种应用层的技术,位于ws2_32.dll之下,
参看MSDN: data transport [Winsock]
sample: lsp (Platform SDK)
参看MSDN: data transport [Winsock]
sample: lsp (Platform SDK)
#21
我顶
#22
我的那种方法可能半年前试过,当时好像是可以,不过现在试起来好像如你所说所有包都被丢弃了。不过看这个函数的参数,应该可以实现特定端口的屏蔽,可以自已多试试各种参数组合,也可以到网上查一查有没有此函数的用法。
另外,要写一个具有简单端口屏蔽功能的驱动也非常简单,把下面这个例子拿过来稍微修改一下就可以了:http://www.codeproject.com/internet/drvfltip.asp
另外,要写一个具有简单端口屏蔽功能的驱动也非常简单,把下面这个例子拿过来稍微修改一下就可以了:http://www.codeproject.com/internet/drvfltip.asp