YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 1 févr. 2010 à 17:27
Oui j'ai un peu mis ce projet de coté car devenu tres long et compliqué, mais comme j'ai plusieurs retours de bug je vais m'y recoller un peu.
filoozom
Messages postés10Date d'inscriptionvendredi 17 août 2007StatutMembreDernière intervention16 mai 2010 24 janv. 2010 à 17:01
Pareil pour moi, blocage à 6 caractères, mais bon, si ça se met le développement de ce programme est abandonné, vu que ça fait assé longtemps déjà ;)
chriscne
Messages postés1Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention14 janvier 2010 14 janv. 2010 à 10:11
impossible pour moi de faire fonctionner ton logiciel :(
apres plusieurs tentatives j'en arrive toujours au même point, le calcul ce bloque à 6 caractères.
6616947d965e72c0cf03da369a26ead8 impossible à décrypter :(
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 18 juil. 2009 à 18:08
Salut Manu.
En effet il faut le compiler pour obtenir un fichier exécutable.
Tu peux télécharger une version .exe sur mon site perso.
Ne prend pas la dernière version qui a un bug, plutôt la version 1.1 monoprocesseur.
manu2107
Messages postés1Date d'inscriptionmardi 23 juin 2009StatutMembreDernière intervention23 juin 2009 23 juin 2009 à 21:42
salu juste comme sa je suis newbie et je ne sais pas commen utiliser ce logiciel je l'ai dézipper et j'ai extrait tout le ficier je regarde dedans et je ne vois pas d'application en .exe il faut sur ment faire de manip bizzard que je connai pas aidez svp
merci davance
manu2107
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 8 juin 2008 à 17:06
Bien vu Filipe, il y a un bug.
Je vais regarder cela et faire une mise à jour.
Merci pour l'info.
Yannick
Filipe35
Messages postés470Date d'inscriptionvendredi 14 novembre 2003StatutMembreDernière intervention23 octobre 20071 8 juin 2008 à 14:06
Salut à tous,
Si je ne me trompe pas, ils parlent de collision sur
fichiers, en lisant rapidement je n'ai pas trouvé
pour une chaine.
Concernant le programme en lui même, petit problème pour moi,
je le lance (Digital 1-15 sur le hash de "123"), mon pc émet
des bruits bizarres puis le programme se ferme (sans message).
Une solution ?
Config: 6750+p5w+xp
++
Filipe
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 25 avril 2007 à 14:55
s4mi
Messages postés1Date d'inscriptionsamedi 20 janvier 2007StatutMembreDernière intervention24 mars 2007 24 mars 2007 à 12:31
Barvo, Vraiment un tres bon project,
je suis un asm debutant j'utilise MASM32, peux tu m'aider SVP car j'arrive pas a compiler ta MD5 Cracker, quand je fait build all il m'affice des errors, j'ai editer le path des fichier a includer windows.inc...to /msm32/include/windows.inc... mais aussi ça marche po!
Merci d'avance & bon courage
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 11 mars 2007 à 18:40
Ok bon courage,
j'attend ta source avec impatience...
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 11 mars 2007 à 18:24
Pourquoi pas?
Mais il faudra me laisser un peu de temps.
J'ai encore réduit le temps de calcul en calculant 5 hash en parallèle (4 avec SSE2 + 1 avec ALU).
Bientôt la mise à jour.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 11 mars 2007 à 13:57
Pour YBESNARD: Sa serait vraiment cool que tu nous fasse une dll
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 7 mars 2007 à 19:16
Salut !
J'ai vu le lien que Hacko a donne plus haut aussi je m'interroge, n'y a t il pas un moyen plus rapide qua la brute force pour casser un hash md5 ? Il m'arrive d'utiliser ce site : http://www.milw0rm.com/cracker/insert.php et la, c'est du quasi-instantane (meme pour de gros hash).
Cela aurait-il un lien avec les raimbow table (je crois que sa s'appelle comme sa, pas sur :p excusez mon ignorance) ?
Il m'a semble avoir lu un article comme quoi le md5 avait ete casse et qu'il etait possible de retrouver un hash sans passer par la force brute. Cela aurait-il un lien ?
pYrAnNa
Messages postés3Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention12 novembre 2006 12 nov. 2006 à 07:48
Bravo, effectivement très rapide!
Je viens de comparer avec MDCrack-NG que je croyais le plus rapide, résultat ton programme est environ 25% plus rapide.
Continu à le faire évoluer, notamment le graphisme.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 oct. 2006 à 12:38
simple cas particulier, sur 4 octets ce n'est pas mesurable (depend du cache a ce moment, etc... trop d'aléas).
Pour les situations ordinaires, tu déroules ma boucle (par 3 est un bon compromis) et rep movsb sera battu à tout coup.
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 26 oct. 2006 à 12:30
Je viens d'essayer, mais c'est un petit peu moins rapide qu'avec rep movsb. environ 3% plus long sur un exemple à 4 caractères.
Dommage.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 oct. 2006 à 19:07
mov ecx, LgPass
lea esi, C1 ; REGISTRE QUE TU VEUX
test ecx, ecx
jle short cpyOUT
lea edi, MD5_Buffer ; REGISTRE QUE TU VEUX
goCPY:
mov al, [esi]
mov [edi], al
add esi, 1
add edi, 1
sub ecx, 1
jne short goCPY
cpyOUT:
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 25 oct. 2006 à 13:41
Bravo!
Effectivement il y a des petites bêtises:
Ca c'est mieux:
invoke GetDlgItem,hWin,1031
mov HandleProgress,eax
invoke SendMessage,eax,PBM_SETRANGE,0,5DC0000h
invoke SendMessage,HandleProgress,PBM_SETSTEP,100,0
Pour le push/pop edx, c'est vrai que je n'en ai plus besoin (et pourtant il m'a servi à un moment donné, mais j'ai fait tant de modifs...)
Pour l'appel à szCopy, J'avoue avoir utilisé la facilité, mais c'est uniquement parce que l'on est pas dans une zone sensible. J'ai optimisé surtout dans les boucles de calcul répétitif.
Sur un P4 le pushad est aussi rapide qu'un push.
Pour le rep movsb (qui se trouve dans une zone sensible en gain de vitesse), propose moi quelque chose, ça m'intéresse. Moi je n'ai rien de plus rapide.
Merci pour ces judicieux conseils.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 oct. 2006 à 09:54
Optimisation P4, je m'attendais aux instructions SSE2. Tu n'emploies ici que le jeu 386.
hInstance, encombre en .data pour rien.
Faisons le disparaitre:
start:
push 0
call GetModuleHandle
push eax ; hInstance pour DialogBoxParam
push offset DlgProc
push 0
push IDD_DIALOG1
push eax ; EMPILAGE FINI POUR DialogBoxParam
call InitCommonControls
push 4227072
call CreateSolidBrush
call DialogBoxParam
push 0
call ExitProcess
Il faut pour cela écrire en ASM, pas en pseudo C non optimisé.
Il en va de même pour les lignes suivantes et partout ailleurs dans ton code:
invoke GetDlgItem,hWin,1031
mov HandleProgress,eax
mov eax,1500
shl eax,16 ; CARREMENT UN AMUSE CPU CELA !!!
invoke SendMessage,HandleProgress,PBM_SETRANGE,0,eax
invoke SendMessage,HandleProgress,PBM_SETSTEP,100,0
Tu as le handle dans eax, tu le mets en mémoire pour aller l'y relire 2 fois.
Faut écrire en C sur VS 2005, au moins lui te produira un code correct.
push edx
mov edx,hWin
mov HandleFenetre,edx
pop edx
Pourquoi PUSH POP ??? edx écrasé à la ligne suivante (LoadIcon).
PUSHAD POPAD sont couteux, ne sauvegarder que ce dont on a besoin.
invoke szCopy, offset szListeCara, offset szListeCaracteres
Un appel fonction pour une copie, c'est le comble. Un compilo C le met inline depuis des lustres.
rep movsb
Ces vieilles instructions sont obsolètes depuis le pentium, une boucle perso correcte sera nettement plus efficace.
etc, etc... Pas le temps d'aller plus loin, rdv chez un client.
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 25 oct. 2006 à 07:33
Optimisation dans le choix des instructions, dans l'alignement des variables, entrelacement des instructions pour en faire passer plusieurs dans le même cycle, tout ce que j'ai pu trouvé pour que ca soit plus rapide sur mon P4.
J'ai précisé P4, car je n'ai pas fait de test sur d'autres processeurs. Mais j'ai aussi utilisé des instructions qui je le sais sont aussi plus rapide que d'autre sur les anciens X86.
Si tu as quelques remarques ou conseils, je serai ravi que tu m'en fasse profiter.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 oct. 2006 à 00:19
L'optimisation P4 est cachée où ???
YBESNARD
Messages postés9Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 1 février 2010 24 oct. 2006 à 18:59
Bonsoir hacko,
Je connais ce projet, effectivement c'est énormément plus rapide car on utilise des tables précalculées, mais ça prend beaucoup de place sur un disque dur.
Le but de mon programme n'est pas de cracker, c'est plus pédagogique, c'est juste pour montrer par exemple qu'un mot de passe MD5 de 6 caractères rien que des minuscules ce n'est pas un mot de passe, c'est une passoire.
En faisant des essais l'on voit que minimum 8 caractères avec des minuscules + majuscules + chiffres + lettres c'est plus sérieux.
Ce programme m'a surtout permis de faires des progrès dans l'optimisation de la rapidité en ASM.
Merci de m'avoir lu.
PS: tu devrais quand même essayer de te mettre à l'assembleur, tu verras c'est assez facile et on y prend beaucoup de plaisir.
cs_hacko
Messages postés16Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention 8 mai 2007 24 oct. 2006 à 16:00
Bonjour,
Je ne peux pas commenter ton projet, je ne connais pas l'assembleur, mais si tu cherche une solution rapide pour cracker des hashs MD5, il existe un projet, le 'Project RainbowCrack'
1 févr. 2010 à 17:27
24 janv. 2010 à 17:01
14 janv. 2010 à 10:11
apres plusieurs tentatives j'en arrive toujours au même point, le calcul ce bloque à 6 caractères.
6616947d965e72c0cf03da369a26ead8 impossible à décrypter :(
18 juil. 2009 à 18:08
En effet il faut le compiler pour obtenir un fichier exécutable.
Tu peux télécharger une version .exe sur mon site perso.
Ne prend pas la dernière version qui a un bug, plutôt la version 1.1 monoprocesseur.
23 juin 2009 à 21:42
merci davance
manu2107
8 juin 2008 à 17:06
Je vais regarder cela et faire une mise à jour.
Merci pour l'info.
Yannick
8 juin 2008 à 14:06
Si je ne me trompe pas, ils parlent de collision sur
fichiers, en lisant rapidement je n'ai pas trouvé
pour une chaine.
Concernant le programme en lui même, petit problème pour moi,
je le lance (Digital 1-15 sur le hash de "123"), mon pc émet
des bruits bizarres puis le programme se ferme (sans message).
Une solution ?
Config: 6750+p5w+xp
++
Filipe
25 avril 2007 à 14:55
effectivement depuis 2 ans maintenant, on peut rapidement créer une collision (trouver un mot de passe différent de celui d'origine mais dont le hash est identique).
donc peut etre que c'est cette méthode qu'il faudrait implémenter pour avoir de la rapidité.
voici quelques liens:
http://cryptography.hyperlink.cz/MD5_collisions.html <= centralisation d'information
http://www.infosec.sdu.edu.cn/paper/md5-attack.pdf =< explication de la collision
http://www.stachliu.com/collisions.html <= page perso d'un chercheur sur la collision
http://www.stachliu.com/files/md5coll.c <= programme C
30 mars 2007 à 01:20
Bon coding a tous !
29 mars 2007 à 12:40
C:\Masm32\Bin\RC.EXE /v "Fast MD5 Cracker.rc"
C:\Masm32\Bin\ML.EXE /c /coff /Cp /nologo /I"C:\Masm32\Include" "Fast MD5 Cracker.asm"
C:\Masm32\Bin\LINK.EXE /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"C:\Masm32\Lib" /OUT:"Fast MD5 Cracker.exe" "Fast MD5 Cracker.obj" "Fast MD5 Cracker.res"
j'ai noté ton message privé, je te contacterai.
24 mars 2007 à 12:31
je suis un asm debutant j'utilise MASM32, peux tu m'aider SVP car j'arrive pas a compiler ta MD5 Cracker, quand je fait build all il m'affice des errors, j'ai editer le path des fichier a includer windows.inc...to /msm32/include/windows.inc... mais aussi ça marche po!
Merci d'avance & bon courage
11 mars 2007 à 18:40
j'attend ta source avec impatience...
11 mars 2007 à 18:24
Mais il faudra me laisser un peu de temps.
J'ai encore réduit le temps de calcul en calculant 5 hash en parallèle (4 avec SSE2 + 1 avec ALU).
Bientôt la mise à jour.
11 mars 2007 à 13:57
Pour YBESNARD: Sa serait vraiment cool que tu nous fasse une dll
7 mars 2007 à 19:16
J'ai vu le lien que Hacko a donne plus haut aussi je m'interroge, n'y a t il pas un moyen plus rapide qua la brute force pour casser un hash md5 ? Il m'arrive d'utiliser ce site : http://www.milw0rm.com/cracker/insert.php et la, c'est du quasi-instantane (meme pour de gros hash).
Cela aurait-il un lien avec les raimbow table (je crois que sa s'appelle comme sa, pas sur :p excusez mon ignorance) ?
Il m'a semble avoir lu un article comme quoi le md5 avait ete casse et qu'il etait possible de retrouver un hash sans passer par la force brute. Cela aurait-il un lien ?
12 nov. 2006 à 07:48
Je viens de comparer avec MDCrack-NG que je croyais le plus rapide, résultat ton programme est environ 25% plus rapide.
Continu à le faire évoluer, notamment le graphisme.
26 oct. 2006 à 12:38
Pour les situations ordinaires, tu déroules ma boucle (par 3 est un bon compromis) et rep movsb sera battu à tout coup.
26 oct. 2006 à 12:30
Dommage.
25 oct. 2006 à 19:07
lea esi, C1 ; REGISTRE QUE TU VEUX
test ecx, ecx
jle short cpyOUT
lea edi, MD5_Buffer ; REGISTRE QUE TU VEUX
goCPY:
mov al, [esi]
mov [edi], al
add esi, 1
add edi, 1
sub ecx, 1
jne short goCPY
cpyOUT:
25 oct. 2006 à 13:41
Effectivement il y a des petites bêtises:
Ca c'est mieux:
invoke GetDlgItem,hWin,1031
mov HandleProgress,eax
invoke SendMessage,eax,PBM_SETRANGE,0,5DC0000h
invoke SendMessage,HandleProgress,PBM_SETSTEP,100,0
Pour le push/pop edx, c'est vrai que je n'en ai plus besoin (et pourtant il m'a servi à un moment donné, mais j'ai fait tant de modifs...)
Pour l'appel à szCopy, J'avoue avoir utilisé la facilité, mais c'est uniquement parce que l'on est pas dans une zone sensible. J'ai optimisé surtout dans les boucles de calcul répétitif.
Sur un P4 le pushad est aussi rapide qu'un push.
Pour le rep movsb (qui se trouve dans une zone sensible en gain de vitesse), propose moi quelque chose, ça m'intéresse. Moi je n'ai rien de plus rapide.
Merci pour ces judicieux conseils.
25 oct. 2006 à 09:54
hInstance, encombre en .data pour rien.
Faisons le disparaitre:
start:
push 0
call GetModuleHandle
push eax ; hInstance pour DialogBoxParam
push offset DlgProc
push 0
push IDD_DIALOG1
push eax ; EMPILAGE FINI POUR DialogBoxParam
call InitCommonControls
push 4227072
call CreateSolidBrush
call DialogBoxParam
push 0
call ExitProcess
Il faut pour cela écrire en ASM, pas en pseudo C non optimisé.
Il en va de même pour les lignes suivantes et partout ailleurs dans ton code:
invoke GetDlgItem,hWin,1031
mov HandleProgress,eax
mov eax,1500
shl eax,16 ; CARREMENT UN AMUSE CPU CELA !!!
invoke SendMessage,HandleProgress,PBM_SETRANGE,0,eax
invoke SendMessage,HandleProgress,PBM_SETSTEP,100,0
Tu as le handle dans eax, tu le mets en mémoire pour aller l'y relire 2 fois.
Faut écrire en C sur VS 2005, au moins lui te produira un code correct.
push edx
mov edx,hWin
mov HandleFenetre,edx
pop edx
Pourquoi PUSH POP ??? edx écrasé à la ligne suivante (LoadIcon).
PUSHAD POPAD sont couteux, ne sauvegarder que ce dont on a besoin.
invoke szCopy, offset szListeCara, offset szListeCaracteres
Un appel fonction pour une copie, c'est le comble. Un compilo C le met inline depuis des lustres.
rep movsb
Ces vieilles instructions sont obsolètes depuis le pentium, une boucle perso correcte sera nettement plus efficace.
etc, etc... Pas le temps d'aller plus loin, rdv chez un client.
25 oct. 2006 à 07:33
J'ai précisé P4, car je n'ai pas fait de test sur d'autres processeurs. Mais j'ai aussi utilisé des instructions qui je le sais sont aussi plus rapide que d'autre sur les anciens X86.
Si tu as quelques remarques ou conseils, je serai ravi que tu m'en fasse profiter.
25 oct. 2006 à 00:19
24 oct. 2006 à 18:59
Je connais ce projet, effectivement c'est énormément plus rapide car on utilise des tables précalculées, mais ça prend beaucoup de place sur un disque dur.
Le but de mon programme n'est pas de cracker, c'est plus pédagogique, c'est juste pour montrer par exemple qu'un mot de passe MD5 de 6 caractères rien que des minuscules ce n'est pas un mot de passe, c'est une passoire.
En faisant des essais l'on voit que minimum 8 caractères avec des minuscules + majuscules + chiffres + lettres c'est plus sérieux.
Ce programme m'a surtout permis de faires des progrès dans l'optimisation de la rapidité en ASM.
Merci de m'avoir lu.
PS: tu devrais quand même essayer de te mettre à l'assembleur, tu verras c'est assez facile et on y prend beaucoup de plaisir.
24 oct. 2006 à 16:00
Je ne peux pas commenter ton projet, je ne connais pas l'assembleur, mais si tu cherche une solution rapide pour cracker des hashs MD5, il existe un projet, le 'Project RainbowCrack'
Tu peux trouver des infos à cet endroit : http://www.antsight.com/zsl/rainbowcrack/#Introduction
C'est pas tout a fait du brute force, mais le système est bien pensé.