📄 csdn_文档中心_过滤钩子驱动程序一(微软ddk文档,flashsky翻译).htm
字号:
year1=tmpDate.getYear()
year= year1.toString().substr(1,2);
}
else
year= tmpDate.getYear();
document.write(year);
document.write(".");
document.write(month);
document.write(".");
document.write(date);
// -->
</SCRIPT>
</B> </TD></TR>
<TR bgColor=#999999>
<TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
<SCRIPT
src="CSDN_文档中心_过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译).files/microsoft.js"></SCRIPT>
</TD>
<TD align=middle width=620>
<TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
<TBODY>
<TR bgColor=#ffffff>
<TD align=middle height=10 width=50></TD>
<TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://www.csdn.net/develop/">文档中心</A> - <FONT
color=#003399>Visual C++</FONT> </TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>标题</FONT></TD>
<TD><B> 过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译)</B> ghj1976(转贴)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
<TD
width=500> 过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译)</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>出处</FONT></TD>
<TD height=10> <A
href="http://www.xici.net/board/doc.asp?id=3277252&sub=0">http://www.xici.net/board/doc.asp?id=3277252&sub=0</A></TD></TR>
<TR>
<TD align=middle height=10></TD>
<TD height=10></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<P>本章说明过滤钩子驱动程序.
一个过滤钩子驱动程序是用于操作系统中的一个IP过滤驱动程序的上下文<BR>中处理或过滤网络包,过滤钩子驱动程序扩展了IP过滤驱动程序的功能。下面主题描述了过滤钩子驱动程序<BR>的一些特性,
解释怎样建立过滤钩子并列出实现一个过滤钩子驱动程序相关的输入输出控制代码函数的参考<BR>信息:<BR> 1.1
关于过滤钩子驱动程序<BR> 一个过滤钩子驱动程序是一个用于过滤网络包的核心模式驱动程序.
一个过滤钩子驱动程序扩展系统提<BR>供的IP过滤驱动程序的功能。一个过滤钩子驱动程序仅仅只能安装于2000及其之后的系统上。仅仅只有一个<BR>过滤钩子驱动程序能被安装在系统之上并且被IP过滤驱动程序使用。如果一个过滤钩子驱动程序的指向用于<BR>IP过滤驱动程序的扩展钩子指针为空,那么他只能使用IP过滤驱动程序注册自己。一旦一个过滤钩子驱动程<BR>序使用了IP过滤驱动程序注册自己,IP过滤程序给这个IP过滤程序的扩展钩子分派文件对象,用这种方法,<BR>这个IP过滤驱动程序确保自己只能接受和使用单个的过滤钩子驱动程序.</P>
<P> 1.2 建立一个过滤钩子驱动程序<BR>
一个过滤钩子驱动程序在包过滤API不能满足过滤网络包时候来建立。用户模式应用程序使用这些API来<BR>建立和管理系统在IP过滤驱动程序中提供的输出和输入过滤器。更多API信息查看SDK。<BR>
一个过滤钩子驱动程序是在核心模式驱动程序下开发的. 另外,
一个过滤钩子驱动程序完成一个过滤钩<BR>子回调函数并在系统提供的IP过滤驱动程序中注册这个回调函数.
这个回调函数被看作一个过滤钩子。这个<BR>IP过滤驱动程序以后使用这个过滤钩子以决定怎样处理到达和输出的包.</P>
<P> 下面的章节将说明怎样建立一个过滤钩子驱动程序<BR> 1.2.1 建立过滤钩子<BR>
一个过滤钩子在执行一个PacketFilterExtensionPtr类型的函数时被建立。<BR>
当一个过滤钩子驱动程序在系统提供的IP过滤驱动程序中注册自己的过滤钩子实体指针时
,这个过滤钩子<BR>驱动程序给他的过滤钩子提供符号地址. 因为一个过滤钩子驱动程序提供这个地址,
而不是名字,这个过滤钩<BR>子可以选择任何名字。当然,好的程序习惯是用其基本的功能来命名这个过滤钩子的名字。<BR>
一个过滤钩子对到达与发出的包进行特定的动作,他将与IP过滤驱动程序发送给过滤钩子来检查怎样的包<BR>将进一步处理的信息与到达的特定信息做比较。在过滤钩子检查包以后,他将使用PF_FORWARD,
PF_DROP, 或<BR>PF_PASS返回响应代码给IP过滤驱动程序怎样处理的信息:<BR> PF_FORWARD<BR> 规定给IP过滤驱动程序马上返回转发响应给IP栈.
对于本地包, IP转发他们到栈顶. 如果包目标地址为外<BR>部机器并且路由允许,
IP路由他们到对应的路由.<BR> PF_DROP<BR> 规定给IP过滤驱动程序马上返回drop响应给IP栈.
IP将drop这个包.<BR> PF_PASS<BR> 规定给IP过滤驱动程序过滤这个包并且返回这个结果响应给IP栈.
IP过滤驱动程序怎样处理这个过滤包决<BR>定于他怎样在Packet Filtering API中做的设置.
过滤钩子如果他检查到他不能处理的包但将允许IP过滤驱动<BR>程序过滤包的时候返回这个pass响应。</P>
<P> 1.2.2 过滤钩子例子<BR>
本节显示了一个简单的过滤钩子基于某几个固定的包属性来构成forward和drop检查. 这个过滤钩子指定<BR>drop
TCP包而forward其他协议的包.<BR>
注意:如果特定IP地址或TCP/UDP端口的包必须被过滤,考虑使用包过滤API替代建立一个用户模式的应用<BR>程序。这些API优化了系统提供的IP过滤驱动程序处理包而不需要在其上关联一个过滤钩子驱动程序.<BR> <BR> #define
PROT_TCP 6<BR> // Drop all TCP
packets<BR> PF_FORWARD_ACTION<BR> DropTcpPackets(<BR> unsigned
char *PacketHeader,<BR> unsigned char *Packet,<BR> unsigned
int PacketLength,<BR> unsigned
int RecvInterfaceIndex,<BR> unsigned
int SendInterfaceIndex,<BR> IPAddr
RecvLinkNextHop,<BR> IPAddr
SendLinkNextHop<BR> )<BR> {<BR> if
(PacketHeader->iph_protocol == PROT_TCP)<BR> {<BR> return
PF_DROP;<BR> }<BR> return PF_FORWARD;<BR> }</P>
<P> </P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT
src="CSDN_文档中心_过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译).files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你没有登陆,无法发表评论。 请先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=3386">登陆</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48
src="CSDN_文档中心_过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译).files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -