ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:20.46KB ,
资源ID:15373126      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15373126.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(sniffer技术原理及应用包括编程方法和工具使用Word格式文档下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

sniffer技术原理及应用包括编程方法和工具使用Word格式文档下载.docx

1、传统的sniffer技术是被动地监听网络通信、用户名和口令。而新的sniffer技术出现了主动地控制通信数据的特点,把sniffer技术扩展到了一个新的领域。Sniffer技术除了目前在传统的网络侦测管理外,也开始被应用在资讯保全的领域。可以这样说,sniffer技术是一把双刃剑,如何更好的利用它,了解它的一些特性,将能使这项技术更好的为我们带来便利。sniffer的编程方法比较通用的有以下几种,1.winpcap 这是一个比较通用的库,相信做过抓包的工具大多数人都不会太陌生2.raw socket 在2000以后的版本都支持此项功能,2000 server有个网络监视器就是基于raw soc

2、ket3.tdi,ndis,spi,hook socket技术,这种技术比较大的不同是可以将包截取而不是仅仅获得包的一份拷贝。总的说来,一般以前两者居多。一)winpcap驱动简介 winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它提供了以下的各项功能: 1 捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报; 2 在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉; 3 在网络上发送原始的数据报; 4 收集网

3、络通信过程中的统计信息。winpcap的主要功能在于独立于主机协议(如TCP-IP)而发送和接收原始数据报。也就是说,winpcap不能阻塞,过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。因此,它不能用于QoS调度程序或个人防火墙。Raw Socket(原始套接字)实现Sniffer(嗅探)一. 摘要 Raw Socket: 原始套接字 可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP, TCP, UDP. int sockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); 这样我们就创建了一个 Raw Sock

4、et Sniffer: 嗅探器 关于嗅探器的原理我想大多数人可能都知道 1. 把网卡置于混杂模式; 2. 捕获数据包; 3. 分析数据包. 但具体的实现知道的人恐怕就不是那么多了. 好, 现在让我们用 Raw Socket 的做一个自已的 Sniffer.二. 把网卡置于混杂模式 在正常的情况下,一个网络接口应该只响应两种数据帧: 一种是与自己硬件地址相匹配的数据帧 一种是发向所有机器的广播数据帧 如果要网卡接收所有通过它的数据, 而不管是不是发给它的, 那么必须把网卡置于混杂模式. 也就是说让它的思维混乱, 不按正常的方式工作. 用 Raw Socket 实现代码如下: setsockopt

5、(sock, IPPROTO_IP, IP_HDRINCL, (char*)&flag, sizeof(flag); /设置 IP 头操作选项 bind(sockRaw, (PSOCKADDR)&addrLocal, sizeof(addrLocal); /把 sockRaw 绑定到本地网卡上 ioctlsocket(sockRaw, SIO_RCVALL, &dwValue); /让 sockRaw 接受所有的数据 flag 标志是用来设置 IP 头操作的, 也就是说要亲自处理 IP 头: bool flag = ture; addrLocal 为本地地址: SOCKADDR_IN addr

6、Local; dwValue 为输入输出参数, 为 1 时执行, 0 时取消: DWORD dwValue = 1; 没想到这么简单吧?三. 捕获数据包 你的 sockRaw 现在已经在工作了, 可以在局域网内其它的电脑上用 Sniffer 检测工具检测一下, 看你的网卡是否处于混杂模式(比如 DigitalBrain 的 ARPKiller). 不能让他白白的浪费资源啊, 抓包! recv(sockRaw, RecvBuf, BUFFER_SIZE, 0); /接受任意数据包 #define BUFFER_SIZE 65535 char RecvBufBUFFER_SIZE; 越来越发现 S

7、niffer 原来如此的简单了, 这么一个函数就已经完成抓取数据包的任务了.四. 分析数据包 这回抓来的包和平常用 Socket 接受的包可就不是一回事儿了, 里面包含 IP, TCP 等原始信息. 要分析它首先得知道这些结构. 数据包的总体结构: - | ip header | tcp header(or x header) | data | IP header structure: 4 8 16 32 bit |-|-|-|-| | Ver | IHL |Type of service | Total length | | Identification | Flags | Fragment

8、 offset | Time to live Protocol Header checksum Source address Destination address Option + Padding Data TCP header structure: |-|-| Source port Destination port Sequence number Acknowledgement number | Offset | Resrvd |U|A|P|R|S|F| Window Checksum Urgent pointer五. 实现 Sniffer OK! 现在都清楚了, 还等什么. 下面是我用 BCB6 写的一个 Simple Sniffer 的代码, 仅供参考. (需要在工程文件里加入WS2_32.LIB这个文件)/*/* CPP File: WMain.cpp/* Simple Sniffer by shadowstar/*#include #pragma hdrstopwinsock2.hws2tcpip.hmstcpip.hnetmon.h#include WMain.h/-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1