FAST MD5 CRACKER

cs_hacko Messages postés 16 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 8 mai 2007 - 24 oct. 2006 à 16:00
YBESNARD Messages postés 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 1 février 2010 - 1 févr. 2010 à 17:27
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/40047-fast-md5-cracker

YBESNARD Messages postés 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 10 Date d'inscription vendredi 17 août 2007 Statut Membre Dernière intervention 16 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és 1 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 14 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és 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 1 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 23 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és 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 470 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 23 octobre 2007 1
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és 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
25 avril 2007 à 14:55
je viens de tomber sur cette source et j'aimerais signaler juste pour information que le MD5 n'est plus considéré comme sur!
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
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
30 mars 2007 à 01:20
Merci pour le lien Neo_Fr ;-)

Bon coding a tous !
YBESNARD Messages postés 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 1 février 2010
29 mars 2007 à 12:40
Essaye comme ça, si tu a Masm32 dans ce répertoire:

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.
s4mi Messages postés 1 Date d'inscription samedi 20 janvier 2007 Statut Membre Dernière intervention 24 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és 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
11 mars 2007 à 18:40
Ok bon courage,
j'attend ta source avec impatience...
YBESNARD Messages postés 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
11 mars 2007 à 13:57
Pour JEAN84: http://fr.wikipedia.org/wiki/Table_arc-en-ciel

Pour YBESNARD: Sa serait vraiment cool que tu nous fasse une dll
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Derniè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és 3 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 12 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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 oct. 2006 à 00:19
L'optimisation P4 est cachée où ???
YBESNARD Messages postés 9 Date d'inscription jeudi 23 mars 2006 Statut Membre Derniè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és 16 Date d'inscription samedi 28 décembre 2002 Statut Membre Derniè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'

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é.
Rejoignez-nous