Rudy3212
Messages postés154Date d'inscriptionvendredi 20 août 2004StatutMembreDernière intervention31 décembre 2007 28 juil. 2008 à 22:46
Sa date, j'avais pas fait gaffe a la date :o
Rudy3212
Messages postés154Date d'inscriptionvendredi 20 août 2004StatutMembreDernière intervention31 décembre 2007 23 juil. 2008 à 13:48
md5 n'est plus fiable, dans une utilisation courante tomber 2 fois sur le même md5 c'est rare, mais en bidouillant on arrive facilement a crée 2 exe qui ont le même md5.
Donc ton programme ce basant sur le md5 n'est pas très fiable, il faudrai que tu change l'algo et après c'est impec ;)
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 3 août 2006 à 13:57
Non, l'unicode n'est pas obligatoire... Il permet juste d'afficher des accents dans la console ;)
Après çà dépend du packer... De toute façon un packer change l'exe, donc il faut réinjecter le MD5 après avoir packé l'exe je pense... Pas vraiment testé cette option :)
cs_bbear
Messages postés92Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention29 mai 2008 12 juin 2006 à 16:02
Excellent
z'êtes trop fort :)
par contre, j'ai testé avec des packers d'exe :
ça passe avec upx et aspack mais pas avec Mew
y aurait un moyen ? (il doit modifier l'entete, supprimer la zone inutilisée... faut dire que quand il compacte, il compacte !!)
autre question : le #define UNICODE dans config.h est obligatoire si le prog n'est pas en mode console? car ça fait scratcher le texte d'une message box
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 2 mars 2005 à 09:13
bien,
conseil pour plus tard Nebula
si tu as des sources identiques pour plusieurs fichiers, fais en une librairie simple cad un répertoire ou tu rassemble ces fichiers.
dans ton zip, seuls les main.c sont différents...
après, les assert sont bien à utiliser pour les débug, mais il n'empèchent pas de réaliser des conditions ou exceptions
si tu les conserves à l'avenir, utilise les uniquement pour assurer les préconditions de tes fonctions.
et évidemment, avant de produire ta version finale, ils ne doivent plus lever le moindre pb
++
Nono
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 27 févr. 2005 à 21:40
Ah oui, mais je ne laisse évidemment pas tout çà en release... J'essaie quand même de gérer toutes les erreurs qui peuvent survenir, avec une reprise possible dans la plupart des cas. Mais lors de la mise au point, je trouve (à mon sens, je conçois qu'on puisse le contester) que les assertions sont bien suffisantes : on s'occupe de gérer les erreurs quand le code marche, tant que ce n'est pas le cas çà ne sert à rien...
Désolé d'avoir mal interprété le sens de ton premier commentaire ;-)
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 27 févr. 2005 à 21:06
Oui, c'est vrai, en release il n'y à plus de `assert()` mais, tu n'a aucune validation, gestion d'erreur, etc ... en release. Que préfère tu? Un soft `bogué` en release ou ~fonctionnel en debug?
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 27 févr. 2005 à 12:21
Vecchio56 > Il paraît que la probabilité d'avoir la même empreinte pour une variation du fichier original est extrêmement faible, pour ainsi dire inexistante. Mais elle existe oui, et pour l'éviter il faudrait se tourner vers des algorithmes plus perfectionnés comme SHA. En tout cas elle est bien plus faible qu'avec un CRC, de ce que j'ai pu en lire.
LordBob > Un hash MD5 c'est un calcul perfectionné qui a lieu sur des données (ici, un fichier) et qui permet d'en extraire en quelque sorte une "empreinte digitale" sur 128 bits, cette empreinte étant hautement variable : si tu re-hashes le fichier en en modifiant seulement un bit, elle va être totalement changée... Plus d'informations (y compris la méthode de calcul) sur ce site http://abcdrfc.free.fr/rfc-vf/rfc1321.html
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 27 févr. 2005 à 11:56
j'aimerais juste savoir ce que c'est un MD5, je vois ca très souvent, mais je ne sais jamais ce que c'est?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 févr. 2005 à 10:56
Je m'y connais pas du tout en emprunte MD5, mais il est forcément possible que 2 fichiers différents aient la même signature, si des changements se compensent... sans doute dans une probabilité très faible?
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 27 févr. 2005 à 06:55
C'est vrai que j'abuse un peu, mais j'ai déjà trouvé des choses assez surprenantes grâce à cette petite macro... Et vu qu'il n'en reste aucune trace en mode release si on définit la macro NDEBUG, pourquoi se priver ;-)
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 27 févr. 2005 à 06:31
Tu devrais peut-être revoir l'utilité de `assert()` ... C'est carrément de l'abus dans le cas présent :P
28 juil. 2008 à 22:46
23 juil. 2008 à 13:48
Comme cette exemple :
http://www.mscs.dal.ca/~selinger/md5collision/hello.exe
et
http://www.mscs.dal.ca/~selinger/md5collision/erase.exe
2 exe différents qui ont le même md5, la procédure pour réaliser cela est ici :
http://www.mscs.dal.ca/~selinger/md5collision/
Donc ton programme ce basant sur le md5 n'est pas très fiable, il faudrai que tu change l'algo et après c'est impec ;)
3 août 2006 à 13:57
Après çà dépend du packer... De toute façon un packer change l'exe, donc il faut réinjecter le MD5 après avoir packé l'exe je pense... Pas vraiment testé cette option :)
12 juin 2006 à 16:02
z'êtes trop fort :)
par contre, j'ai testé avec des packers d'exe :
ça passe avec upx et aspack mais pas avec Mew
y aurait un moyen ? (il doit modifier l'entete, supprimer la zone inutilisée... faut dire que quand il compacte, il compacte !!)
autre question : le #define UNICODE dans config.h est obligatoire si le prog n'est pas en mode console? car ça fait scratcher le texte d'une message box
2 mars 2005 à 09:13
conseil pour plus tard Nebula
si tu as des sources identiques pour plusieurs fichiers, fais en une librairie simple cad un répertoire ou tu rassemble ces fichiers.
dans ton zip, seuls les main.c sont différents...
après, les assert sont bien à utiliser pour les débug, mais il n'empèchent pas de réaliser des conditions ou exceptions
si tu les conserves à l'avenir, utilise les uniquement pour assurer les préconditions de tes fonctions.
et évidemment, avant de produire ta version finale, ils ne doivent plus lever le moindre pb
++
Nono
27 févr. 2005 à 21:40
Désolé d'avoir mal interprété le sens de ton premier commentaire ;-)
27 févr. 2005 à 21:06
27 févr. 2005 à 12:21
LordBob > Un hash MD5 c'est un calcul perfectionné qui a lieu sur des données (ici, un fichier) et qui permet d'en extraire en quelque sorte une "empreinte digitale" sur 128 bits, cette empreinte étant hautement variable : si tu re-hashes le fichier en en modifiant seulement un bit, elle va être totalement changée... Plus d'informations (y compris la méthode de calcul) sur ce site http://abcdrfc.free.fr/rfc-vf/rfc1321.html
27 févr. 2005 à 11:56
27 févr. 2005 à 10:56
27 févr. 2005 à 06:55
27 févr. 2005 à 06:31