zoukankan      html  css  js  c++  java
  • WinPcap使用小结(一)

    以下内容来自于http://hi.baidu.com/lewvan/home

    winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。

    要使用WinPcap,需要:Winpcap程序员开发包Winpcap驱动安装包

    ARP包被封装在以太网数据帧里,我所用的以太网环境是Ethernet II即DIX 2.0,是Xerox与DEC、Intel在1982年制定的以太网标准帧格式,Cisco名称为:ARPA。一个这样的以太网数据帧由以下几部分组成:

    ff ff ff ff ff ff是物理的广播地址image 是我的MAC地址; 08 06 表示ARP协议;00 01表示以太网

    未命名

    IMAG0101_副本

    1)前导字符,在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,其中,前7个字节称为前同步码(Preamble),内容是16进制数 0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。

    以太网传输层(并不是用户需要访问的):

    2)目标MAC,共6字节,表示该数据帧被局域网中哪台主机接收。

    3)源MAC,共6字节,表示该数据帧发出方的MAC。

    4)类型,共2字节,标识出以太网帧所携带的上层数据类型,ether_type$ADDRESS_RESOLUTION  其中:

              1536 XEROX NS IDP
              2048 Internet 协议 (IP)
    2049 X.752050NBS
    2051 ECMA
    2053 X.25第3层
              2054 ARP    (0x0806)
    2055 XNS
    4096 伯克利追踪者
    21000 BBS Simnet
    24577 DEC MOP 转储/装载
    24578 DEC MOP 远程控制台
    24579 DEC 网 IV 段
    24580 DEC LAT
    24582 DEC
    32773 HP 探示器
    32821 RARP
    32823 Apple Talk
    32824 DEC 局域网桥

    如果使用Winpcap抓ARP包,那么抓到的包中这两字节应该都是0x0806即十进制2054,表该帧承载一个ARP包,Winpcap就以这两个自己来是别一个包属于那种包(如果捕TCP或者UDP包,那么这两个字节应该是2048,因为TCP和UDP等等很多协议都属于IP族的协议)。

    以太网包数据:

    5)数据,长度为46-1500字节,数据包的内容。对于ARP包,它应该是:

    a)硬件地址类型,2字节,为1时表示以太网,为6表示令牌环网格式等等。

    b)协议地址类型,2字节,同以太网帧的各种取值情况,因为ARP一般负责MAC和IP地址间的转换,所以这两个字节一般固定取0x0800。

    c)硬件地址长度,1字节,表MAC地址的长度,一般取6.

    d)协议地址长度,1字节,表协议地址的长度,这跟b)中指定的协议类型有关,ip协议地址为4字节,所以一般也固定取4.

    e)操作码,2字节,表示该ARP包的用意,为1时表示已知IP地址查询MAC,如上图中第一个报文,

                                                      为2时表示应答一个IP地址对应的MAC,上图第二个报文。

    f)发送者硬件地址,长度由c)指定

    g)发送者协议地址,长度由d)指定

    h)目的方硬件地址,长度由c)指定

    i)目的方协议地址,长度由d)指定

    6)验证码,是4个字节的帧校验序列(Frame Check Sequence,FCS),采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。

    如果用Winpcap抓取ARP包,只能抓到从2)、3)、4)、5)的内容。用Winpcap抓到长度为42字节的包,小于6+6+46的最小值

  • 相关阅读:
    Beta 冲刺(4/7)
    Beta 冲刺(3/7)
    Beta 冲刺(2/7)
    Beta 冲刺(1/7)
    福大软工 · BETA 版冲刺前准备(团队) [已完成]
    解决Mac外接显示器分辨率不正确问题
    oracle11g客户端如何完全卸载(转)
    【转】VMware设置共享文件夹之后Ubuntu中看不到怎么办?
    解决无法将程序加到默认程序打开列表中的问题(转)
    设置无线上网和本地上网的优先级
  • 原文地址:https://www.cnblogs.com/dorothychai/p/2271213.html
Copyright © 2011-2022 走看看