CRC

Signaler
Messages postés
3
Date d'inscription
vendredi 2 avril 2004
Statut
Membre
Dernière intervention
10 avril 2004
-
Messages postés
1
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
24 novembre 2004
-
Bonjour !
Je travail actuellement sur un sniffer sous Visual.net.
J'ai crée une socket et j'aimerais pouvoir tester mon crc.
Je ne recupere que la partie IP et TCP de la trame ainsi que la donner.
C'est un CRC16 ça j'en suis sur et j'ai le checksum de la partie IP.
Merci de me dirre comment faire.
Le probléme etant que je recuperer de temps en temps 2 fois la même trame car elle a été renvoier 2 fois et moi je voudais avoir que la bonne des deux.
Merci d'avance
SnoBlade360

3 réponses

Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
voila une méthode pour calculer un crc16 :


unsigned short int Ccitt16Table[ 256 ]; 
void BuildTable16( ) 
{ 
    int i; 
    int j; 
    int k; 
    int crc; 

    for ( i = 0 ; i < 256 ; i++ ) { 
        k = i << 8; 
        crc = 0; 
        for ( j = 0 ; j < 8 ; j++ ) { 
            if ( ( crc ^ k ) & 0x8000 ) 
                crc = ( crc << 1 ) ^ 0x1021; 
            else 
                crc <<= 1; 
            k <<= 1; 
        } 
        Ccitt16Table[ i ] = crc; 
    } 
} 
#define  CalculateCharacterCRC16(crc,c) (unsigned short int) ( ( crc << 8 ) ^ Ccitt16Table[ (crc >> 8 ) ^ c ] ) 
Messages postés
3
Date d'inscription
vendredi 2 avril 2004
Statut
Membre
Dernière intervention
10 avril 2004

Merci mais moi j'ai une trame et comment je fait pour me servir de cette Méthode ?
Car moi je recupere ma trame dans un buffer de 8192 place donc comment on fait
Merci d'avance pour ta reponse
SnowBlade 360
Messages postés
1
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
24 novembre 2004

Salut à tous. j'aimerai bien que quelqu'un m'explique comment fonctionne un crc32.