EXÉCUTABLES SE VÉRIFIANT LORSQU'ILS SONT LANCÉS

NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011 - 27 févr. 2005 à 06:31
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007 - 28 juil. 2008 à 22:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29811-executables-se-verifiant-lorsqu-ils-sont-lances

Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 décembre 2007
28 juil. 2008 à 22:46
Sa date, j'avais pas fait gaffe a la date :o
Rudy3212 Messages postés 154 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 31 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.

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 ;)
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
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és 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 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és 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 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és 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
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és 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 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és 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
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és 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
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és 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
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és 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
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és 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 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
Rejoignez-nous