Visual C++网络编程技术电子教案延霞 10.pptVIP

Visual C++网络编程技术电子教案延霞 10.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络嗅探器 授课教师: 导入 网络嗅探是指监听网络的数据信息。目前有很多商业的或者免费的嗅探工具,也称嗅探器(Sniffer)。 网络嗅探是网络监测和数据分析等管理活动常用的的方法。网络嗅探器一般是通过网络传输介质的共享特性实现抓包,获得当前网络的使用状况,为网络管理员对网络中的信息进行实时的监测并分析提供的一个合适的工具。 本章就介绍了简单的网络嗅探器设计与开发,并给出了嗅探器的一个具体应用——截获FTP登陆用户名和密码。 本章要点 嗅探器原理分析 简单嗅探器的设计实现 应用嗅探器截获FTP登陆名和密码 网络嗅探器原理 网络嗅探器最基本的功能就是数据包的捕获,我们主要讨论在共享网络中捕获数据包。 当有数据包到达网络后,数据被发给所有端口,任何端口上的主机都可以接收数据包。 一般情况下,主机在接收到目的地址是本地的数据包的时候才会接受,其他的数据包会丢弃,这个工作是网卡来完成的。 网络嗅探器原理——网卡的工作模式 网卡通常有两种工作模式,即混杂模式和非混杂模式。 一般情况下,网卡是处于非混杂模式的,在这种模式下,网卡只接收目的地址等于自己地址的数据包。 如果把网卡设为混杂模式,就可以接收所有的网络数据包,无论其目的地址是否等于自已的地址,都一并接收。 为了捕获网络中的所有数据包,需要将网卡设置成混杂模式。 嗅探器的原理 1. 把网卡置于混杂模式 2. 捕获数据包 3. 分析数据包 详细代码见教材 代码详解——设置网卡为混杂模式 在正常的情况下,一个网络接口应该只响应两种数据帧:一种是与自己硬件地址相匹配的数据帧;一种是发向所有机器的广播数据帧。如果要网卡接收所有通过它的数据, 而不管是不是发给它的, 那么必须把网卡置于混杂模式 创建原始套接字之后,将它绑定到一个明确的本地地址,然后向套接字发送SIO_RCVALL控制命令,让它接收所有的IP包,这样网卡便进入了混杂模式。 代码详解——ioctlsocket()函数 此函数功能是控制套接字的模式,可以用来设置网卡的工作模式为混杂模式 int PASCAL FAR ioctlsocket( SOCKET s, long cmd, u_long FAR* argp); 参数s:一个标识套接字的描述字。 参数cmd:对套接字s的操作命令。 参数argp:指向cmd命令所带参数的指针。 本例中调用ioctlsocket()函数时,代码是:ioctlsocket(sRaw, SIO_RCVALL, dwValue);其中第一个参数是用于接收IP包socket,第二个参数是SIO_RCVALL,表示接收所有的IP包,第三个参数dwValue值为1。 截获局域网内登陆FTP的用户名和密码 密码失窃的主要原因是,密码和用户名是通过明文传输的。 互联网上大量使用的HTTP、FTP、SMTP (虽然经过了编码,但是解码方法是公开的)等都是不加密的。 本例就实现了获取局域网内所有登陆FTP的用户名和密码的功能。 原理解析 上面的实例中实现了一个简单的Sniffer程序,该程序可以截获局域网内的所有数据包,并根据数据包的内容进行初步的解析,判断哪些数据包是TCP包 本例是在上个实例的基础上,进一步解析TCP包,检查封包的目的端口号,如果是21端口,就说明使用的是FTP协议,从而分析出哪些是FTP数据包,并从FTP包中取出登陆的用户名和密码,显示出来。 解析TCP数据包,取出登陆FTP的用户名和密码 void GetFtp(char *pData, DWORD dwDestIp) { char szBuf[256]; static char szUserName[21]; static char szPassword[21]; if(strnicmp(pData, USER , 5) == 0) { sscanf(pData + 4, %*[ ]%s, szUserName); } else if(strnicmp(pData, PASS , 5) == 0) { sscanf(pData + 4, %*[ ]%s, szPassword); wsprintf(szBuf, Server Address: %s; User Name: %s; Password: %s; \n\n, ::inet_ntoa(*(in_addr*)dwDestIp), szUserName, szPassword); printf(szBuf); // 这里您可以将它保存到文件中 } } 课堂练习题 网卡通常有两种工作模式,即

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档