基于Filter-HookDriver(使用ipfirewallh)的IP過滤驱动.docVIP

基于Filter-HookDriver(使用ipfirewallh)的IP過滤驱动.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Filter-HookDriver(使用ipfirewallh)的IP過滤驱动

[原创]基于Filter-HookDriver(使用ipfirewall.h)的IP过滤驱动 文章标题:[原创]基于Filter-HookDriver(使用ipfirewall.h)的IP过滤驱动顶部 fleshwound 发布于:2007-02-2716:02 [楼主][原创]基于Filter-HookDriver(使用ipfirewall.h)的IP过滤驱动 文章作者:fleshwound[smatrix](fleshwound@126.com) 信息来源:邪恶八进制信息安全团队() 注意:本文章首发安全矩阵(),后由原创作者友情提交到邪恶八进制信息安全团队。 IP过滤驱动可以广泛的应用于网络安全产品的研发,NDIS和TDI的驱动资料很多,有比较成熟的代码可以参考,但是使用IPFIREWALL.h开发的IP过滤驱动的资料非常少,这次自己做一个软件的时候参考VCKBASE上的一篇文章《开发Windows2000/XP下的防火墙》(作者:JesúsO)的基础上,写了一个驱动,代码都做了详细的注释了,只要稍微有点驱动设计基础的都可以看得懂,我把自己的特殊的回调函数去掉了,保留了基本的完整框架,牛人就不需要看了,初学者都可以在此基础上继续快速开发。 1SmatrixIPDiv.cpp文件 2protocol.h头文件 3SmatrixIPDiv.h头文件 Copycode /*Copyright(c)2007,安全矩阵(SecurityMatrix) *Allrightsreserved. * *文件名称:SmatrixIPDiv.cpp *文件标识:S *摘 要:IP过滤驱动,利用ipfirewall捕获包、分析包、过滤包 *开始时间:2006年12月26Ri * *当前版本:1.0 *作 者:fleshwound@126.com *相关信息: *完成Ri期:2007年1月2Ri */ externC { #includestdio.h #includestring.h #includestdlib.h #includentddk.h #includentddndis.h #includepfhook.h #includendis.h #includeipfirewall.h } #includeSmatrixIPDiv.h #includeprotocol.h /////////////////////////自定义函数的声明/////////////////////// //关闭打开驱动函数 NTSTATUSDispatchCreateClose(PDEVICE_OBJECTpDevObj,PIRPpIrp); //驱动卸载函数 voidDriverUnload(PDRIVER_OBJECTpDriverObj); //IO控制派遣函数(内核消息处理) NTSTATUSDispatchIoctl(PDEVICE_OBJECTpDevObj,PIRPpIrp); //向过滤列表中添加一个过滤规则 NTSTATUSAddFilterToList(CIPFilter*pFilter); //清除过滤列表 voidClearFilterList(); //注册钩子回调函数 NTSTATUSSetFilterFunction(IPPacketFirewallPtrfilterFunction,BOOLEANload); //包过滤函数 FORWARD_ACTIONFilterPacket(unsignedchar*PacketHeader, unsignedchar*Packet, unsignedintPacketLength, DIRECTION_Edirection, unsignedintRecvInterfaceIndex, unsignedintSendInterfaceIndex); //IP过滤器函数 FORWARD_ACTIONIPFilterFunction(VOID **pData, UINT RecvInterfaceIndex, UINT *pSendInterfaceIndex, UCHAR *pDestinationType, VOID *pContext, UINT ContextLength, structIPRcvBuf**pRcvBuf); //过滤列表首地址 structCFilterList*g_pHeader=NULL; //驱动内部名称和符号连接名称 #defineDEVICE_NAMEL\\Device\\DevS

文档评论(0)

fglgf11gf21gI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档