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 !
Version imprimable
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 ?Citation:
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:
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 .
8O
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...Citation:
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".Citation:
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...
effectivement :roll:Citation:
Envoy� par benoitB
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.
8O
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 :Citation:
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�...
:D
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
8O