IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

générer un CRC


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut générer un CRC
    voilà, tout est dans le titre : je cherche à générer (ou récupérer) le CRC de l'application C++ (composée de 2 dll et d'un exécutable) que j'ai créée avec Visual.

    Si vous avez une piste...

    merci !

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Bonjour,
    je ne comprends pas ce que tu veux faire .
    Générer le CRC pour le fichier sur disque ?
    C'est l'OS qui gère cela.
    Quel est le but du projet ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par mat.M
    Bonjour,
    je ne comprends pas ce que tu veux faire .
    Générer le CRC pour le fichier sur disque ?
    C'est l'OS qui gère cela.
    Quel est le but du projet ?
    ben... je voudrais récupérer le CRC correspondant à mon appli (en fait les 3 CRC). Ca se calcule à la compilation ça non ?

    parce que je dois livrer ce projet avec un CRC qui ne doit pas bouger. Il sert de preuve par laquelle le code n'a pas été modifié.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut, j'ai une methode pour calculer un CRC32
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    #define CRC_MASK           0xFFFFFFFFL
    #define CRC32_POLYNOMIAL   0xEDB88320L
    unsigned long Ccitt32Table[ 256 ];    /* This array holds the CRC       */
                          /* table used to calculate the 32 */
                          /* bit CRC values.                */
    #define UpdateCharacterCRC32( crc , c) ((unsigned long)((crc >> 8) & 0x00FFFFFFL) ^ Ccitt32Table[ ( (int) crc ^ c ) & 0xff ])
     
    void BuildCRCTable()
    {
        int i;
        int j;
        unsigned long value;
     
        for ( i = 0; i <= 255 ; i++ ) {
        value = i;
        for ( j = 8 ; j > 0; j-- ) {
            if ( value & 1 )
            value = ( value >> 1 ) ^ CRC32_POLYNOMIAL;
            else
            value >>= 1;
        }
        Ccitt32Table[ i ] = value;
        }
    }
     
    // utilisation
           BuildCRCTable();// initialisation 
     
    // calcul du crc pour la chaine de caracterze sz se teminant par \0
    unsigned long     original_crc=CRC_MASK;
        for(int i=0;sz[i];i++)
        {
            original_crc=UpdateCharacterCRC32(original_crc,sz[i]);
        }
        original_crc^=CRC_MASK;
    original_crc contient à la fin le CRC .
    il suffira d'appliquer a ton prog le meme traitement de l'ouvrir comme un fichier et de calculer le CRC comme dans l'exemple octet par octet.
    la methode est issue des transferts de fichier par Zmodem .

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    je rajouterai à mon dernier post que j'utilise moi même cette methode pour m'assurer de l'integrite de mes progs en distribution ou pour d'autres systemes de verifications.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par farscape
    re,
    je rajouterai à mon dernier post que j'utilise moi même cette methode pour m'assurer de l'integrite de mes progs en distribution ou pour d'autres systemes de verifications.
    euh oui OK mais ça ça me prouve que personne n'a modifié mon code. Mais ça ne peut pas prouver à une société tierce que je n'ai pas modifié mon code...

    il n'y a rien de générique calculé par visual ?

  7. #7
    Membre du Club Avatar de benoitB
    Profil pro
    Inscrit en
    Août 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 78
    Points : 68
    Points
    68
    Par défaut couple CRC/exe
    mais quand tu expédie une version de ton soft, elle est accompagnée du CRC correspondant.
    La société tièrce se base sur :
    1- l'exécutable que tu as fourni
    2- le CRC correspondant fourni.

    Dans TOUS les cas il s'agit d'un couple code exe/CRC.

    Bien évidemment si la société n'a pas les moyens techniques de générer le CRC à partir d'un EXE oui alors problème.

    Mais alors pourquoi ne pas include un calculateur de CRC dans le soft qui sert à :
    1- contrôler que le soft est correct vis à vis du CRC
    2- affichicher le BAD CRC si il est incorrect ?
    3- afficher le CRC correct dans la boîte "à propos" par exemple ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut Re: couple CRC/exe
    Citation Envoyé par benoitB
    mais quand tu expédie une version de ton soft, elle est accompagnée du CRC correspondant.
    La société tièrce se base sur :
    1- l'exécutable que tu as fourni
    2- le CRC correspondant fourni.

    Dans TOUS les cas il s'agit d'un couple code exe/CRC.

    Bien évidemment si la société n'a pas les moyens techniques de générer le CRC à partir d'un EXE oui alors problème.

    Mais alors pourquoi ne pas include un calculateur de CRC dans le soft qui sert à :
    1- contrôler que le soft est correct vis à vis du CRC
    2- affichicher le BAD CRC si il est incorrect ?
    3- afficher le CRC correct dans la boîte "à propos" par exemple ?
    c'est vrai, mais la société tierce ne pourra pas prendre comme argent comptant le CRC qui sera affiché dans le "à propos".
    Je peux très bien modifier mon code et mettre un affichage bison dans le "à propos" pour qu'il colle à l'ancien CRC.

    effectivement, il faudrait qu'il aient un calculateur de CRC à eux et qu'ils vérifient à chaque fois...

  9. #9
    Membre du Club Avatar de benoitB
    Profil pro
    Inscrit en
    Août 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    oui tout à fait d'accord avec twa.

    Mais si tu me vends un soft avec le CRC "calculé" puis affiché dans "à propos", ben mwa je procède ainsi :

    0- je contrôle le soft que tu me donnes (taille + toutes les infos accessibles sans le lancer)
    1- j'installe ton soft, je lis son CRC "calculé" dans la boîte de dialogie "à propos"
    2- je quitte, modifie ton soft (1 caractère), relance ton soft puis refait 1- & là ben normalement le CRC devrait avoir changé.... la suite en 3-

    3- je te rapelle "allo Eugénie ? on a un problème !"

    C'est possible ? (je suis pas expert en la matière)

    Ou alors je recherche dans l'exe (ULTRAEDIT) la chaîne de caractère indiquée dans "à propos".

    PS : bon je suis vicieux je sais...

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il existe des logiciels qui calculent le crc d'un fichier.
    Tu generes le crc de tes fichiers avec le programme
    tu donnes le fichier qui contient le crc
    et l'entreprise peut verifier le crc avec ce meme logiciel

    donc, soit tu crées toi meme le logiciel qui calcule le crc (avec la méthode de farscape par exemple), soit tu récuperes un logiciel qui le fait deja (ca fait plus sérieux), j'en connais un shareware pas mal :
    http://homepage.ntlworld.com/lee.midgley/SFVChecker.zip
    mais il doit aussi y en avoir des gratuits

    a+

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut
    ben merci à tous :=)

    je vais utiliser un logiciel externe et voir comment on peut s'arranger...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par benoitB
    oui tout à fait d'accord avec twa.

    Mais si tu me vends un soft avec le CRC "calculé" puis affiché dans "à propos", ben mwa je procède ainsi :

    0- je contrôle le soft que tu me donnes (taille + toutes les infos accessibles sans le lancer)
    1- j'installe ton soft, je lis son CRC "calculé" dans la boîte de dialogie "à propos"
    2- je quitte, modifie ton soft (1 caractère), relance ton soft puis refait 1- & là ben normalement le CRC devrait avoir changé.... la suite en 3-

    3- je te rapelle "allo Eugénie ? on a un problème !"

    C'est possible ? (je suis pas expert en la matière)

    Ou alors je recherche dans l'exe (ULTRAEDIT) la chaîne de caractère indiquée dans "à propos".

    PS : bon je suis vicieux je sais...
    effectivement

  13. #13
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    c'est sur, moi j'ai donné un bout de code pour calculer un CRC et resoudre un pb de coding ,maintenant tout dépend des relations avec tes clients si ils veulent être sur que le soft ne soit pas modifier mettez vous d'accord sur une méthode externe (prog commercial ) et commune de vérification.
    bon maintenant s'amuser à changer le prog comme dit dans le post précèdent le crc sera pas le même .reste à savoir si dans l'histoire le pb initial est fondé pourquoi ils veulent un crc tes clients s'assurer des virus ,la peur que tu modifies sans leur dire c'est le kgb ou la cia tes clients ?
    en tout cas j'aimerai pas travaillé dans un climat ou la confiance client-fournisseur n'est pas réciproque mais basé sur la suspicion.

  14. #14
    Membre du Club Avatar de benoitB
    Profil pro
    Inscrit en
    Août 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 78
    Points : 68
    Points
    68
    Par défaut pas le KGB
    Salut, c'est pas l'histoire du KGB ou autre mais j'ai travaillé dans des domaines que je qualifierai de ... sensibles :

    - spatial
    - miltaire
    - aéronautique

    pour lesquels les procédures de recette des logiciels (comme des matériels) sont très rigoureuses et ce n'est pas pour se protéger mais :

    - assurer une PARFAITE traçabilité du logiciel
    - assurer un fonctionnalité AMONT à 100% du cahier des charges
    - assurer également une protection juridique
    - tout les reste (virus, mofid malveilante)
    - assurer un sécurité dans la transmission du soft sous n'importe quel vecteur (mail, PTT, hertzien, etc)

    Pas de méfiance à priori mais, à mon avis, une rigueur AMONT. Moi cela ne me dérange pas, je considère cela NORMEL.

  15. #15
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    Salut,

    J'ai un peu regardé le format PE et il existe une date/heure de génération du soft (généré par le linker bien sur)

    Ca plus un crc externe ça devrait suffire non ?

  16. #16
    Membre du Club Avatar de benoitB
    Profil pro
    Inscrit en
    Août 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 78
    Points : 68
    Points
    68
    Par défaut .
    Deux cas possibles :

    1- tu t'adresses à une société qui a un svce infor NORMAL, ce service peut prendre en charge le contrôle & le suivi des versions (softf + CRC)

    2- ce n'est pas le cas :

    2-1- de la confiance (...)

    2-2- Choisir un soft de contrôle externe (payant ça fait plus pro)

    Ce qui n'empêche pas d'intégrer un calcul de CRC interne au soft.

    Da façon classique, avec les agl actuels les données accessibles en interne par le soft me semblent suffisantent (built & co).

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par farscape
    salut,
    c'est sur, moi j'ai donné un bout de code pour calculer un CRC et resoudre un pb de coding ,maintenant tout dépend des relations avec tes clients si ils veulent être sur que le soft ne soit pas modifier mettez vous d'accord sur une méthode externe (prog commercial ) et commune de vérification.
    bon maintenant s'amuser à changer le prog comme dit dans le post précèdent le crc sera pas le même .reste à savoir si dans l'histoire le pb initial est fondé pourquoi ils veulent un crc tes clients s'assurer des virus ,la peur que tu modifies sans leur dire c'est le kgb ou la cia tes clients ?
    en tout cas j'aimerai pas travaillé dans un climat ou la confiance client-fournisseur n'est pas réciproque mais basé sur la suspicion.
    pour répondre à toutes les questions concernant la confiance :

    nos produits sont homologués. On homologue une version qui correspond à un CRC et on n'a le droit de commercialiser que la version homologuée (donc un CRC qui ne doit pas bouger).
    Les appli précédentes étaient développées sur des terminaux (avec OS spécial qui indique le CRC lors du chargement de l'appli sur ledit terminal). Mais là, mon appli est en Visual C++ et je dois tout de même la faire homologuer...

    voilà pour la petite histoire...

  18. #18
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Salut,
    Effectivement dans ce cas il vaut mieux utiliser un prog commercial qui fait le boulot, je suis même étonné que la méthode ne soit pas déjà déterminée par ce genre de société...

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 20
    Points
    20
    Par défaut pour en revenir au CRC
    farscape, tu m'as donné une méthode de calcul mais ma question est : comment je fais pour calculer le CRC correspondant à l'ensemble de mon appli (les 2 dll plus l'éxécutable) ?

    merci

  20. #20
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    bien tu enchaînes la lecture fichier après fichier pour obtenir un crc global

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30
  2. [CR][VB] comment générer un état ?
    Par ndi dans le forum SDK
    Réponses: 3
    Dernier message: 22/08/2002, 13h13
  3. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  4. codes crc
    Par patturbo dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/07/2002, 09h28
  5. Réponses: 5
    Dernier message: 08/07/2002, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo