- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一
实验名称: ARP地址解析协议
实验目的
1.掌握ARP原理,学会ARP编程
2.进一步熟悉VC++开发环境
实验要求
查找资料,写出ARP原理和主要使用的API函数.
实验内容
1.ARP原理:
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。? ?? ???ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
2.实验代码:
#include packet32.h
#include ntddndis.h
#include stdio.h
#include conio.h
void start()
{
printf(T-ARP --- ARP Tools\n);
return ;
}
void usage()
{
printf(Attention:\n);
printf( 1 You must have installed the winpcap_2.3 or winpcap_3.0_alpha\n);
printf( 2 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\IPEnableRouter == 0x1\n\n);
return ;
}
int getmine()
{
char sendbuf[1024];
int k;
ETHDR eth;
ARPHDR arp;
for(k=0;k6;k++)
{
eth.eh_dst[k]=0xff;
eth.eh_src[k]=0x82;
arp.arp_sha[k]=0x82;
arp.arp_tha[k]=0x00;
}
eth.eh_type=htons(ETH_ARP);
arp.arp_hdr=htons(ARP_HARDWARE);
arp.arp_pro=htons(ETH_IP);
arp.arp_hln=6;
arp.arp_pln=4;
arp.arp_opt=htons(ARP_REQUEST);
arp.arp_tpa=inet_addr(219.220.30.138);//htonl(myip);
arp.arp_spa=inet_addr(112.112.112.112);
memset(sendbuf,0,sizeof(sendbuf));
memcpy(sendbuf,eth,sizeof(eth));
memcpy(sendbuf+sizeof(eth),arp,sizeof(arp));
PacketInitPacket(lppackets,sendbuf,sizeof(eth)+sizeof(arp));
if(PacketSetNumWrites(lpadapter,1)==FALSE)
{
printf(Warning: Unable to send a packet 2 times\n);
}
if(PacketSendPacket(lpadapter,lppackets,TRUE)==FALSE)
{
printf(PacketSendPacket in getmine Error
您可能关注的文档
最近下载
- 万科-平衡计分卡-经典案例讲解.docx
- 2023年福建省计算机专项考评员试题.docx VIP
- 2025年粮食日主题班会《“知食分子”不剩饭》【课件】.pptx VIP
- 马达加斯加共和国TheRepublicofMadagascar.PDF VIP
- 微软云存储OneDrive 入门.pdf VIP
- 新版人教版三年级上册数学全册教案教学设计含教学反思 .pdf
- 《外科护理学》课件—— 急性阑尾炎病因和发病机制.pptx VIP
- GB/T19580 《卓越绩效评价准则》国家标准培训讲义.pdf VIP
- 2025广西盐业集团玉林盐业有限公司招聘笔试备考题库及答案详解(历年真题).docx
- 《单片机基础与Arduino应用(第2版)》全套教学课件.pptx
文档评论(0)