赞助连接

赞助连接

阅 读 文 章

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

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


memcpy(LLADDR(SDL(gate)), etherbroadcastaddr, 6);
SDL(gate)->;sdl_alen = 6;/*硬件地址的长度,对rt(路由信息结构)的rt_gateway成员操作*/
rt->;rt_expire = 0;/*0表示该ARP永不过期*/
}
#endif

if (SIN(rt_key(rt))->;sin_addr.s_addr ==
    (IA_SIN(rt->;rt_ifa))->;sin_addr.s_addr) {
rt->;rt_expire = 0;/*置永久ARP标志,即该ARP永不过期*/
Bcopy(((struct arpcom *)rt->;rt_ifp)->;ac_enaddr,  /*把本网卡的硬件地址放入路由的rt->;rt_gateway中*/
LLADDR(SDL(gate)), SDL(gate)->;sdl_alen = 6); /*记住:内核函数Bcopy和Memcpy都是内存拷贝,但参数方向不同*/
if (useloopback)
rt->;rt_ifp = loif;

}
break;

case RTM_DELETE:/*删除一ARP节点,当然也要对对应的路由进行相关的操作*/
if (la == 0)
break;
arp_inuse--;/*统计用*/
LIST_REMOVE(la, la_le);/*从链表中(ARP节点链表,即结构llinfo_arp)删除一ARP节点*/
rt->;rt_llinfo = 0;/*该路由所指向的ARP节点置空*/
rt->;rt_flags &= ~RTF_LLINFO;/*去掉含有ARP节点标志*/
if (la->;la_hold)/*如果在该节点中还有未发送的mbuf,释放掉*/
m_freem(la->;la_hold);
Free((caddr_t)la);/*释放该ARP节点结构占用的内存*/
}
}

/*
 * 广播一ARP请求:
 *  ac    要发送该ARP包的网卡(由以太网通用结构arpcom指向该卡的相关结构)
 * sip-  源IP地址
 * tip-  目的IP地址
 * enaddr 源以太网地址
 */
static void
arprequest(ac, sip, tip, enaddr)
register struct arpcom *ac;   /*以太网通用结构*/
register struct in_addr *sip, *tip;/*源和目的IP地址*/
register u_char *enaddr;/*发送ARP包的卡的硬件地址*/
{
register struct mbuf *m;/*mbuf链指针*/
register struct ether_header *eh;/*以太网头部*/
register struct ether_arp *ea;  /*ARP头部结构*/
struct sockaddr sa;/*在这没用上,除非你在ISO协议中*/
static u_char llcx[] = { 0x82, 0x40, LLC_SNAP_LSAP, LLC_SNAP_LSAP,  /*用于ISO协议*/
   LLC_UI, 0x00, 0x00, 0x00, 0x08, 0x06 };

if ((m = m_gethdr(M_DONTWAIT, MT_DATA)) == NULL)/*该函数在mbuf.c中,建立一mbuf,其实他是MGETHDR(m, how, type);下面对该宏有详细的解释*/
return;
m->;m_pkthdr.rcvif = (struct ifnet *)0;/*对于此语句,本人并没有发现什么有用的地方,不管在ether_output,还是在驱动程序的包输出中,都没有用上他*/
switch (ac->;ac_if.if_type) {/*查看该卡所用的协议*/
case IFT_ISO88025:/*支持ISO协议,我们可以略去*/
m->;m_len = sizeof(*ea) + sizeof(llcx);
m->;m_pkthdr.len = sizeof(*ea) + sizeof(llcx);
论坛热门帖子: [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):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.