2010-01-15 3 views

Répondre

5

Si vous vérifiez ce code où sniff_tcp est utilisé, assurez-vous d'imprimer th_flags membres de cette structure qui contians drapeaux dont vous avez besoin.

/* TCP header */ 
    struct sniff_tcp { 
     u_short th_sport; /* source port */ 
     u_short th_dport; /* destination port */ 
     tcp_seq th_seq;  /* sequence number */ 
     tcp_seq th_ack;  /* acknowledgement number */ 

     u_char th_offx2; /* data offset, rsvd */ 
    #define TH_OFF(th) (((th)->th_offx2 & 0xf0) >> 4) 
     u_char th_flags; 
    #define TH_FIN 0x01 
    #define TH_SYN 0x02 
    #define TH_RST 0x04 
    #define TH_PUSH 0x08 
    #define TH_ACK 0x10 
    #define TH_URG 0x20 
    #define TH_ECE 0x40 
    #define TH_CWR 0x80 
    #define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR) 
     u_short th_win;  /* window */ 
     u_short th_sum;  /* checksum */ 
     u_short th_urp;  /* urgent pointer */ 
}; 

En général, vous aurez quelque chose comme ça (un peu laid, vous pouvez le faire mieux):

//this is already there in the code: 
    printf(" Src port: %d\n", ntohs(tcp->th_sport)); 
    printf(" Dst port: %d\n", ntohs(tcp->th_dport)) 

//you add: 
    if (tcp->th_flags & TH_ECE){ 
     printf(" Flag: TH_ECE"); 
    } 
    if (tcp->th_flags & TH_RST){ 
     printf(" Flag: TH_RST"); 
    } 
+0

merci !! charges – trinity

Questions connexes