会员名称:  密码:   验证码:     会员注册  忘记密码? 
设为首页
加入收藏
返回首页
媒体资讯>> 业界资讯 - 会展动态 - 竞赛&活动 - IT互联网  媒体学院>> 图形图像 - 网页制作 - 网络编程 - 数据库 - 服务器 - 网络应用  作品赏析>> 视频音响 - CG动画 - UI设计 - 平面设计 - 网页设计 - 摄影映象 - 三维2D - 其它设计  媒体工作室>> 视频影像 - 音频声响 - 三维2D - 平面视觉 - 软硬技术 - 摄影映象  人物访谈>> 人物访谈 - 华夏新锐  媒体杂志>> 媒体杂志  素材图库>> 丽景佳图 - 设计素材 - 资料图库 - 矢量图库 - 动态动画 - 特色图标  酷站赏析>> 韩国网站 - 国外网站 - 国内网站  会员中心>> 会员注册 - 会员登陆
当前位置:华夏媒体 - > 媒体学院 - > 网络应用 - > 网络知识 - > sniffer技术原理及应用(1)
   
   
   
sniffer技术原理及应用(1) sniffer技术原...  [网络...]
More... 
   
网络协议X档案全集(十) 网络协议X档案...  [其它...]
不可忽视的BIOS参数设置 不可忽视的BIO...  [其它...]
微软IE浏览器非常规修改全攻略(上) 微软IE浏览器非...  [其它...]
微软IE浏览器非常规修改全攻略(下) 微软IE浏览器非...  [其它...]
网管十招 网管十招  [其它...]
微软安全问题 源自OS和IE中集成RSS 微软安全问题 ...  [其它...]
修改注册表使电脑更安全 修改注册表使电...  [其它...]
利用注册表管理IP地址 利用注册表管理...  [其它...]
有关IIS HACK的一些方法整理 有关IIS HACK的...  [其它...]
More 
sniffer技术原理及应用(1)
编辑:华夏媒体     作者:未知     来源:网络     时间:2006-07-29     总浏览量:1531
文字大小:[      ]     文字颜色:      双击滚屏/单击停止

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [下一页] 



corresponding code error
   status = STATUS_INSUFFICIENT_RESOURCES;

  }

  if(ipFileObject != NULL)
   ObDereferenceObject(ipFileObject);
  
  ipFileObject = NULL;
  ipDeviceObject = NULL;
}

else

return status;
}
//真正的过滤函数是这个,在最早的IRPdispatch里面传递的这个函数。
//这个函数就是系统传递了一个包头和包内容和包长度之类的东西,你可以在里面进行一些处理,
//假如你想让这个包通过的话,就返回PF_FORWARD,或者你不想让包通过的话,就返回PF_D

ROP就拦住了。是不是
//听起来很简单,
PF_FORWARD_ACTION cbFilterFunction(IN unsigned char *PacketHeader,IN

unsigned char *Packet, IN unsigned int PacketLength, IN unsigned int

RecvInterfaceIndex, IN unsigned int SendInterfaceIndex, IN unsigned long

RecvLinkNextHop, IN unsigned long SendLinkNextHop)
{
IPPacket *ipp;
TCPHeader *tcph;
UDPHeader *udph;

int countRule=0;

struct filterList *aux = first;

//we "extract" the ip Header
ipp=(IPPacket *)PacketHeader;

// dprintf("Source: %x\nDestination: %x\nProtocol: %d", ipp->ipSource,

ipp->ipDestination, ipp->ipProtocol);

//TCP -> protocol = 6
//we accept all packets of established connections
if(ipp->ipProtocol == 6)
{
  tcph=(TCPHeader *)Packet;

//  dprintf("FLAGS: %x\n", tcph->flags);
  
  //if we havent the bit SYN activate, we pass the packets
  if(!(tcph->flags & 0x02))
   return PF_FORWARD;
}

//otherwise, we compare the packet with our rules
while(aux != NULL)
{
//  dprintf("Comparing with Rule %d", countRule);

  //if protocol is the same....
  if(aux->ipf.protocol == 0 || ipp->ipProtocol ==

aux->ipf.protocol)
  {
   //we look in source Address
   if(aux->ipf.sourceIp != 0 && (ipp->ipSource &

aux->ipf.sourceMask) != aux->ipf.sourceIp)
   {
    aux=aux->next;
   
    countRule++;
    continue;
   }
         
   // we look in destination address
   if(aux->ipf.destinationIp != 0 && (ipp->ipDestination

& aux->ipf.destinationMask) != aux->ipf.destinationIp)
   {
    aux=aux->next;

    countRule++;
    continue;
   }
   
   //if we have a tcp packet, we look in ports
   //tcp, protocol = 6
   if(ipp->ipProtocol == 6)
   {
    if(aux->ipf.sourcePort == 0 ||

tcph->sourcePort == aux->ipf.sourcePort)


[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [下一页] 

打印   收藏   关闭   至顶部  


关于我们 | 联系我们 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 意见建议
版权所有  Copyright © 2005-2006 华夏媒体(Media86.Com). All Rights Reserved .
网站备案号:粤ICP备06055307号