begin process at 2012 05 29 02:25:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Réseau & Internet

 > 

CRC trame UDP ( Prise de tête ... :( )


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CRC trame UDP ( Prise de tête ... :( )

mercredi 1 août 2007 à 20:36:53 | CRC trame UDP ( Prise de tête ... :( )

Booster

Membre Club
Bonjour à tous,

Alors voilà je fais de la redirection de trame. Le problème est que lorsque je change l'ip de destination du cou le CRC doit aussi changer cependant je n'arrive pas à le recalculer il me manque quelque chose donc voici les étapes que je réalise :

1) Capture de la trame :

  FF  FF  FF  FF  FF  FF  00  16    E6  5A  5F  94  08  00 45  00
  00  5C  60  E7  00  00  80  11    00  00  C0  A8  00  E9  C0  A8
  00  65
  22  B9  22  B9  00  48    00  00
  FF  FF  00  01  00  40
  EC  C3  00  00  00  00  0C  FF    00  00  00  00  00  34  0D  24
  34  7C  40  B8  18  FA  66  00    00  00  E4  6C  1D  DA  DD  00
  35  7C  00  00  00  00  01  00    00  00  FF  FF  FF  FF  FF  FF
  FF  FF  00  00  00  00  01  00    00  00

En rouge est le header IP (d'aprés ethereal)
En orange le CRC du header IP(d'aprés ethereal)
En bleu est le header UDP (Toujours d'aprés ethereal)
En vert le CRC du header UDP
(Toujours d'aprés ethereal)


2) Fonction utilisé pour calculer le CRC:

unsigned short CRC(unsigned short *data, int taille)
{
    unsigned long checksum=0;
    while(taille>1)
        {
        checksum=checksum+*data++;
        taille=taille-sizeof(unsigned short);
        }

    if(taille)
        checksum=checksum+*(unsigned char*)data;

    checksum=(checksum>>16)+(checksum&0xffff);
    checksum=checksum+(checksum>>16);

    return (unsigned short)(~checksum);
}

Cette fonction est donné sur de nombreux site donc je ne doute pas de sont résultat ! (J'ai fait un simple copié collé)

3) Comment je calcul (C'est là ou doit être l'erreur :) )

Dans un premier temps je met les CRC à 0 comme indiqué par la RFC (Dans la trame données je les est mis à 0)
Puis ensuite j'appelle ma fonction comme ceci :
CRC(Trame + 14, 20)    //Trame + 14 pour avoir le header ip
                                        // 20 Parce que mon header est de 20
Et là la fonction me retourne un résultat qui n'est pas celui de ethereal :( ...

Ou est mon erreur ?

Merci d'avance et horriblement désolé pour les fautes d'orthographe ...
jeudi 2 août 2007 à 18:37:05 | Re : CRC trame UDP ( Prise de tête ... :( )

Booster

Membre Club
Personne ne pourait me dire qu'est ce qu'il faut calculer et dans quel ordre ?

j'attend juste ça comme réponse aprés je me débrouille :( ?

Merci d'avance
lundi 6 août 2007 à 22:16:56 | Re : CRC trame UDP ( Prise de tête ... :( )

Booster

Membre Club
S'il vous plait à l'aide !!! Je ne trouve pas :( ça fait plus de 4jours que je cherche sur google comment faire et j'ai beau trouver des milliards de site aucun n'explique réellement comment calculer le crc du header IP, beaucoup montre comment créer une trame puis utilise une fonction de winsock2.h pour calculer le checksum moi c'est à la main que je veux le faire ! personne n'a le détail de comment faire cela ? :( Je remerci d'avance le courageux qui pourra me répondre !
mardi 7 août 2007 à 01:40:38 | Re : CRC trame UDP ( Prise de tête ... :( )

aardman

Membre Club
Salut,
y'a aucune fonction dans winsock qui permet de calculer une checksum, donc les milliards de code que tu as trouvé utilisent forcement une fonction du même genre que celle que tu utilises. apres pour savoir sur quoi on calcule le checksum, suffit de regarder dans les rfc ip & udp, non ?

mardi 7 août 2007 à 01:43:31 | Re : CRC trame UDP ( Prise de tête ... :( )

aardman

Membre Club
Salut,
au passage, la facon dont tu appeles CRC me parait bizarre (aucun cast..), poste aussi le code ou tu déclares & rempli la variable Trame.



Cette discussion est classée dans : header, checksum, crc, trame, ff


Répondre à ce message

Sujets en rapport avec ce message

CRC [ par SnowBlade360 ] 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 Traiter Trame météo URGENT !!!!! [ par Ruben_Manu ] Bonjour à tout le monde !Je suis sur un projet informatique sur une station météo WMR928. Mon but est de traiter chaque trames envoyer par cette stati CRC Checksum [ par netgear ] je voudrai connaitre la difference entre un CRC et un checksum et si il y en a une, un exemple d'utilisation de checksum pourrait m'aider. Je travaill Type de CheckSum CRC 32, CRC8 , CRC 64 dans un fichier binaire [ par seas ] Bonsoir a tous , Je vais faire trés simple pour permettre aux membres de cérner le probléme sur mon projet . Je dois calculer le Checksum d'un fichier Analyse du sniffeur et recuperation d'une trame [ par Razily ] Bonjour à tous , je suis un peu débutant en programmation et surtout sur tout ce qui est réseau : en fait voilà , mon travail consiste après avoir la [Qt][ModBus TCP] Reception d'une trame modbus [ par mayojiko ] Bonjour à tous, J'effectue dans le cadre de mon BTS un projet portant sur ModBus. Le but est de codé un module de communication avec un Automate de RAW SOCKET - IP - Sendto() - Erreur 'WSAEADDRNOTAVAIL' [ par dark1933 ] Salut à tous,J'essaye désespérément d'envoyer un Ping en forgeant le datagramme IP adéquat.J'obtiens l'erreur "WSAEADDRNOTAVAIL" au moment de l'appel Calculer une checksum sur 8 bits [ par JOE56570 ] Bonjour, Je cherche la méthode (en C) pour calculer la checksum d'une trame de 6 octets, dont j'ai saisi le modèle à l'analyseur logique. 1er trame :0 RS232 timeout [ par virtuoze ] voici mon code : MAIN: [code=cpp]#include #include #include #include #include #include "class_RS232.h" unsigned char Trame_GetStatut[] = {0x01,


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales