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 !
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 !
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 ?Envoyé par mat.M
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é.
salut, j'ai une methode pour calculer un CRC32
original_crc contient à la fin le CRC .
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;
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 .
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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.
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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...Envoyé par farscape
il n'y a rien de générique calculé par visual ?
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".Envoyé par benoitB
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...
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...
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+
ben merci à tous :=)
je vais utiliser un logiciel externe et voir comment on peut s'arranger...
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.
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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.
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 ?
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).
pour répondre à toutes les questions concernant la confiance :Envoyé par farscape
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...
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é...
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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
salut,
bien tu enchaînes la lecture fichier après fichier pour obtenir un crc global
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Partager