begin process at 2010 03 20 00:01:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications Windows

 > FAST MD5 CRACKER

FAST MD5 CRACKER


 Information sur la source

Note :
9,75 / 10 - par 4 personnes
9,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Applications Windows Classé sous :md5, cracker, fast, brute, force Niveau :Initié Date de création :23/10/2006 Date de mise à jour :06/12/2007 18:44:01 Vu / téléchargé :19 683 / 15 303

Auteur : YBESNARD

Ecrire un message privé
Site perso
Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note

 Description

Decrypteur de hash MD5:
Ce programme retrouve par "force brute", c'est à dire en essayant toutes les combinaisons, un mot de passe hashé en MD5.
Cette nouvelle version gère le multithreading et peut donc tourner sur des systèmes multiprocesseurs ou hyperthreading.
Utilise les instructionS SSE2, ne fonctionne pas avec un processeur inférieur au pentium 4.


Ses limite: mot de passe maxi 15 caractères.
je pourrais faire plus, mais déja le temps de calcul sur un ordinateur perso est de l'ordre de la dizaine d'années pour 10 caractéres (exemple: que des chiffres).


Intéret: audit de mot de passe MD5
Et uniquement cela. Ne pas utiliser pour des actes malveillants.


Programme écrit avec Masm32 et RadAsm.


Rapidité: il est plus rapide que les autres programmes que j'ai pu trouver.
Si vous trouvez plus rapide (en terme de hash par seconde) merci de m'en faire part.
Le tableau ci-joint (Benchmark.doc) donne une indication de temps de calcul pour différents mot de passe.
Sur un processeur Intel Core 2 duo E6600 j'arrive à tester presque 50 million de mots de passe par seconde.

Le fichier exécutable peut être téléchargé sur mon site: http://yanbes.free.fr/fast md5 cracker


 Conclusion

Je le mettrai à jour en fonction des retours que j'aurai.
Ce qui m'interesse le plus c'est des comparaisons de vitesse par rapport aux autres programmes du même style.

Mise à jour version 1.1 le 17/08/07

Mise à jour version 1.2 le 18/11/07

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

17 août 2007 12:11:34 :
Utilisation des instructions SIMD SSE2. Calcul en parallèle de 5 hashs par boucle. Permet d'environ doubler la vitesse de calcul. La prochaine version fera du multi-threading pour un calcul encore plus rapide avec des processeurs multicores.
18 novembre 2007 19:10:08 :
Version multi processeurs (jusqu'a 16 cores).
06 décembre 2007 18:44:03 :
Mise à jour du zip

 Sources de la même categorie

Source avec Zip Source avec une capture BASE DE REGISTRE ET TRANSFERE DE BMP DANS SYSTEM32 par vincent2795
Source avec Zip RÉSOUDRE LES PROBLÈMES DE VERSIONS DU SYSTÈME OU DE DLL par ToutEnMasm
Source avec Zip DEXPLORE INTERFACE HELP2 MICROSOFT DOCUMENT EXPLORER par ToutEnMasm
Source avec Zip DEXPLORE INTERFACE HELP2 MICROSOFT DOCUMENT EXPLORER par ToutEnMasm
Source avec Zip Source avec une capture ANALYSEUR DE TRAFIC (WINPCAP) par ORdream

Commentaires et avis

Commentaire de hacko le 24/10/2006 16:00:40

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

Commentaire de YBESNARD le 24/10/2006 18:59:45

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.

Commentaire de BruNews le 25/10/2006 00:19:40 administrateur CS

L'optimisation P4 est cachée où ???

Commentaire de YBESNARD le 25/10/2006 07:33:01

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.

Commentaire de BruNews le 25/10/2006 09:54:35 administrateur CS

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.

Commentaire de YBESNARD le 25/10/2006 13:41:40

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.

Commentaire de BruNews le 25/10/2006 19:07:15 administrateur CS

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:

Commentaire de YBESNARD le 26/10/2006 12:30:16

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.

Commentaire de BruNews le 26/10/2006 12:38:07 administrateur CS

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.

Commentaire de pYrAnNa le 12/11/2006 07:48:37

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.

Commentaire de jean84 le 07/03/2007 19:16:58

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 ?

Commentaire de Neo_Fr le 11/03/2007 13:57:45

Pour JEAN84: http://fr.wikipedia.org/wiki/Table_arc-en-ciel

Pour YBESNARD: Sa serait vraiment cool que tu nous fasse une dll

Commentaire de YBESNARD le 11/03/2007 18:24: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.

Commentaire de Neo_Fr le 11/03/2007 18:40:12

Ok bon courage,
j'attend ta source avec impatience...

Commentaire de s4mi le 24/03/2007 12:31:37

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

Commentaire de YBESNARD le 29/03/2007 12:40:18

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.

Commentaire de jean84 le 30/03/2007 01:20:57

Merci pour le lien Neo_Fr ;-)

Bon coding a tous !

Commentaire de LordBob le 25/04/2007 14:55:43

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

Commentaire de Filipe35 le 08/06/2008 14:06:20

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

Commentaire de YBESNARD le 08/06/2008 17:06:23

Bien vu Filipe, il y a un bug.
Je vais regarder cela et faire une mise à jour.
Merci pour l'info.

Yannick

Commentaire de manu2107 le 23/06/2009 21:42:52

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

Commentaire de YBESNARD le 18/07/2009 18:08:35

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.

Commentaire de chriscne le 14/01/2010 10:11:15

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 :(

Commentaire de filoozom le 24/01/2010 17:01:50

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à ;)

Commentaire de YBESNARD le 01/02/2010 17:27:46

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment utiliser une DLL asm en C++ [ par Neo_Fr ] Salut tt le monde,Je suis tres intereser par le dll suivante: http://www.asmfr.com/code.aspx?ID=23840J'ai besoin de deux fonctions qui sont inclu dans Cracker [ par yorkais ] slt tout le monde, moi je suis nouveau et j'avoue ke je m'y connais âs trop en programmation, , et je voudrais apprendre, je suis trés intelligent et


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales