文件名称:
增加ARP拦截的passthru驱动代码以及Delphi7如何使用该驱动
开发工具:
文件大小: 430kb
下载次数: 0
上传时间: 2013-08-01
详细说明: passthru来源于FireWallDemo,具有TCP,UDP,ICMP拦截功能,但是不具有ARP拦截。 首先,拦截规则是在UTIL_AddOneRule函数里加入,参数是Rules,所以Rules结构要重新定义如下: struct Rules { u_long id; //Rule的号码 u_char protocol; //协议类型 union { struct { u_long s_ip; //原IP u_long s_mask; //掩码 u_short s_port; //原端口 u_long d_ip; //目的IP u_long d_mask; //掩码 u_short d_port; //目的端口 }; struct { u_long arp_spa; //IP地址 ;ULONG u_char arp_sha[6]; //硬件地址 }; }; u_char direct; //方向 u_char action; //是否拦截 char sMemo[ 100]; //备注 }; 以便使Rules结构既适合原来定义,又适合ARP参数传递,类似这样的定义还有 struct Fw_Rule_Node { u_long id; //Rule的号码 u_char protocol; //协议类型 union { struct { u_long s_ip; //原IP u_long s_mask; //掩码 u_short s_port; //原端口 u_long d_ip; //目的IP u_long d_mask; //掩码 u_short d_port; //目的端口 }; struct { u_long arp_spa; //IP地址 ;ULONG u_char arp_sha[6]; //硬件地址 }; }; u_char direct; //方向 u_char action; //是否拦截 char sMemo[100];//备注 struct Fw_Rule_Node *next; //指向下个节点的指针 }; 重新定义后,就可以在UTIL_AddOneRule函数加入ARP规则匹配,规则匹配是由UTIL_MatchRule和UTIL_MatchArpRule来检查,如果符合规则就通过,否则丢弃。本包包含passthru增加ARP拦截功能编译后的passthru驱动包,以及VC的passthru驱动源代码,需要用XPDDK或2003DDK编译,VC我不知道怎么编译,反正VC无法编译。本包还附带Delphi7使用passthru拦截ARP的一个简单例子,详见Button1的Click事件代码,IP和MAC地址根据情况需重新填写。另外,ARP和Rules结构对应Delphi7来说都是紧缩结构(Packed record),Delphi XE 居然不认,这里强调一下,Rules结构的尺寸是127,凡是不是这个尺寸的,passthru驱动不认账,无法调用,这个Rules结构到了Delphi XE 里尺寸居然是227,弄了半天,不知道何故,毅然删除Delphi XE,重新启用Delphi7,万恶 的Delphi XE!!!,害得我调试了半天。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.