Aller au contenu | Aller au menu | Aller à la recherche

Back to the password

bttp.gifRécemment, j'ai retrouvé un vieux fichier ZIP sur mon ordinateur. Ignorant ce qu'il y avait dedans, j'ai décidé de l'ouvrir... Je me suis aperçu qu'un mot de passe en empêchait la lecture. Après plusieurs tentatives infructueuses, je me suis tourné vers des logiciels de crack de fichiers ZIP. Néanmoins, j'ai vite déchanté : les prix auxquels sont proposés ce genre de solution sont bien trop cher pour moi. L'absurdité de ce prix est d'autant plus flagrante qu'il n'est pas, à mon sens, justifié. En effet, cela ne me semble pas d'une difficulté extrême de réaliser ce type de programmes. L'idée serait donc de proposer une solution gratuite (et si possible libre) pour retrouver le mot de passe d'un fichier ZIP. C'est en ce sens qu'est né Back to the password.
bttp1.png bttp1.png

Les avantages de Back to the password sont multiples :

  • Une interface sympa (Et oui, ça joue ;-) )
  • Support de différents types de caractères (lettres, chiffres ou tous caractères)
  • Choix de la longueur d'un mot de passe
  • Enregistrement des mots de passe probables
  • Statistiques montrant l'avancement en temps réel
  • Licence GPL
  • Application Multi-threads

J'ai conçu un algorithme de génération de mot de passe qui en crée plus de 2 millions par seconde. Toutefois, mon programme est freiné par la bibliothèque que j'utilise pour ouvrir les fichiers ZIP, SharpZipLib (Plutôt que de réinventer la roue, j'ai préféré utiliser ce qui existait déjà). Mais cette librairie a des soucis dès qu'il s'agit d'ouvrir de multiples fichiers ZIP ; en effet, le fait de changer de mot de passe fait qu'il faut ouvrir à nouveau le fichier ZIP. Ainsi, pour tester 10 mots de passe, il faut pouvoir ouvrir 10 fois le même fichier. Cela augmente donc de manière drastique les accès au disque et diminue d'autant la vitesse de recherche du mot de passe.
Je pourrais (enfin je devrais) utiliser une autre classe, voire même en développer une autre, si j'avais le temps, mais je doute que ce soit pour tout de suite...
D'où l'idée d'utiliser plusieurs threads, ce qui permet de chercher plusieurs mot de passe en même temps. En fait, un thread est créé pour chaque longueur de mot de passe. Ainsi, si on cherche un mot de passe compris entre 3 et 4 caractères, on créera deux threads. Tous les threads ainsi générés créent à leur tour deux threads pour parcourir la liste des mots de passe possible en partant de chaque extrémité. Ainsi, malgré les limitations de la classe utilisée, on peut facilement monter à un parcours de 200 mots de passe par seconde.

QR code
Jean-Baptiste Langlois

Auteur: Jean-Baptiste Langlois

Restez au courant de l'actualité et abonnez-vous au Flux RSS de cette catégorie

Commentaires (0)

Soyez le premier à réagir sur cet article

Ajouter un commentaire Fil des commentaires de ce billet

:-) ;-) :-/ :mdr: :-D :-( :-C 8-) :-O :-s :siffle: :-P :love: :oops: :money: :caca:


À voir également

Icinga avec LDAPS

Connexion en LDAPS avec Icinga

Authentification sur Icinga via un serveur LDAP nécessitant un certificat

Lire la suite

icinga-api-2.PNG

Remonter les checks Icinga grâce à Ruby

Classe Ruby permettant de remonter des informations grâce à l'interface REST de Icinga-Web

Lire la suite