各位XDJM,不知道各位对抓取到的数据包如何判断使用的应用层协议的,请赐教。

解决方案 »

  1.   

    根据数据包得特征即协议特征来判断,比如http包,就有host:字段这些,ftp,smtp,pop3这些协议也都有特殊得字段.自定义得应用层协议就要自己分析了.
      

  2.   

    先找个sniffer工具分析一下各种协议内容得头部分,看有没什么特征
      

  3.   

    typedef struct _IP_PACKET
    {
    // Ethernet
    unsigned char  targ_hw_addr[6]; // 目的地址,6字节。
    unsigned char  src_hw_addr[6]; // 源地址,6字节。
    unsigned char  H_frame_type;
    unsigned char  L_frame_type;
    // IP
    unsigned char h_verlen;           //4位首部长度,4位IP版本号
    unsigned char tos;                //8位服务类型TOS
    unsigned short total_len;         //16位总长度(字节)
    unsigned short ident;             //16位标识
    unsigned short frag_and_flags;    //3位标志位和13位偏移
    unsigned char  ttl;               //8位生存时间 TTL
    unsigned char proto;              //8位协议 (1->ICMP, 2->IGMP, 6->TCP, 17->UDP)
    unsigned short checksum;          //16位IP首部校验和
    unsigned int sourceIP;            //32位源IP地址
    unsigned int destIP;              //32位目的IP地址
    }
    =========================================================================
    看到这个结构,不用说也知道在哪里看出协议了吧
      

  4.   

    To jzyhummel(刀锋[影忍]) 
       大虾,你说的那些那个与应用层协议有关啊?
      

  5.   

    你是用原始socket抓的包吗?还是其他的
      

  6.   

    既然是winpcap,那么得到是以太包,包开头就是我给的那个结构
      

  7.   

    To  jzyhummel(刀锋[影忍]) 大哥,不知道你有没有看清楚我写的题目,什么叫应用层协议,这个不用我解释了吧??我需要的是应用层协议……
      

  8.   

    从这个包头,你可以看出 ARP,RARP,IP,TCP,UDP,ICMP,IGMP协议类型,我不知道你还想看出什么应用层协议??
      

  9.   

    To jzyhummel(刀锋[影忍]) :
       大虾,应用层的协议就是Http,FTP,SMTP等等针对具体应用的协议,你说的那些是传输层的协议。嘿嘿……