赞助连接

赞助连接

阅 读 文 章

ARP地址解析协议详解及其漏洞分析

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(xie_minix) | 时间:2007-05-27 | 浏览:人次 ]


总长度(即一arp包的长度)是否合格,在我的ARP头文件解释中有说明ARP包的长度及结构*/
    + 2 * ar->;ar_pln) {
log(LOG_ERR, "arp: runt packet\n");
m_freem(m);/*释放掉该mbuf链*/
continue;/*既然这个mbuf链是无意义的,那么进行下一个while*/
}

switch (ntohs(ar->;ar_pro)) {
#ifdef INET
case ETHERTYPE_IP:/*我们知道的ARP解释就目前只有对IP的*/
in_arpinput(m);/*调用分析函数,在下面*/
continue;
#endif
}
m_freem(m);/*对ar->;ar_pro中的协议不认识,释放掉该mbuf链*/
}
}

#ifdef INET
/* ARP的算法规则遵循RFC 826
 * 下面我简单的说一下RFC 826,非关键的东西我就跳过去了.
 * 该协议原现是为DEC/Intel/Xerox的10M以太网设计的.
 * 下面是他的包格式:
 Ethernet 传输层,即以太网头部 :(注意:是按顺序的)
48.bit: 目的方的以太网地址
48.bit: 发送方的以太网地址
16.bit: 协议类型 = ether_type$ADDRESS_RESOLUTION(原来有上面说的三种(ISO协议),后来加了这一种)
 Ethernet ARP数据包内的数据:
16.bit:  硬件地址空间(这是RFC说的,其实应该是硬件类型) (如, 以太网,无线网络等)
16.bit: 协议类型.对以太网来说就是ETHERTYPE_IP 
 8.bit:  硬件地址长度(字节),在我们以太网中是6
 8.bit:  协议地址长度(字节),在我们以太网中是4
16.bit: 操作代码 (1是请求 | 2是应答)
n bytes: 该包发送方硬件地址(n是长度,看上面)

m bytes: 该包发送方的协议地址(m是长度,看上面,下面的m,n也一样),其实就是IP地址

n bytes: 这个包目的方的硬件地址(应该是不知道的),一般是在发送的时候肯定不知道,所
以为空,但也有免费ARP,就是把自己的地址填充,下面的IP也填充自己的,看有没有
起他的机器回应这IP的,如果有,就是有冲突了,大家上WINDOWS时,IP没配好,网络上
已经有这台IP机器时, 发送该包,哪个已经有该IP的机器就会回应一ARP,我们的接
收程序接收到了以后,就会发出"您的IP地址出现冲突,请询问网络管理员"(我也不
记得了,大概是这样说的).

m bytes:  目的方的协议地址.即目的方的IP地址
其他的都是讲一些原理,我就不多说了,我们看程序的时候全会讲到.

 */
static int log_arp_wrong_iface = 1;/*这是控制在桥模式时,不该接收这ARP的网卡却收到了时,会
判断该变量为真的话,就在控制台输出一出错信息*/

SYSCTL_INT(_net_link_ether_inet, OID_AUTO, log_arp_wrong_iface, CTLFLAG_RW,
&log_arp_wrong_iface, 0,
"log arp packets arriving on the wrong interface");/*该sysctl继承了net.link.ether.inet叶节点
用来控制上面那个变量,方法如下:
sysctl net.link.ether.inet.log_arp_wrong_iface=0  就会不输出出错信息*/

/*ARP包接收后处理*/
static void
in_arpinput(m)
struct mbuf *m;
{
register struct ether_arp *ea;/*arp包的数据结构,在程序中我列出了他的结构*/
register struct arpcom *ac = (struct arpcom *)m->;m_pkthdr.rcvif;/*rcvif成员表示该mbuf是从那块网卡接收的*/
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 及其 漏洞 分析 详解 协议 地址 解析 ARP IP if ea- 路由

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.