Crack-wifi.com FORUM

LE FORUM DU SITE

Wifi, Backtrack, crack WEP et WPA...

Vous n'êtes pas identifié(e).  

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#1 31-07-2013 16:51:23

warfares
Membre Hyperactif
Inscription : 01-04-2013
Messages : 52

[RÉSOLU][JAVA] probleme script md5/dico

bonjour,
j'ai fait un petit script en java, qui prend en entrée un hash md5, et qui compare ce hash avec ceux des mots d'un dico.
seulement, cette fonction de comparaison ne fonctionne pas.
ça doit être un truc tout con concernant les scanner, mais je n'arrive vraiment pas à comprendre où ça coince.

voila le script :

import java.util.Scanner;
import java.io.*;
import java.io.File;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Ligne
{
	
   private static String encode(String password) // méthode création du hash
    {
        byte[] uniqueKey = password.getBytes();
        byte[] hash      = null;

        try
        {
            hash = MessageDigest.getInstance("MD5").digest(uniqueKey);
        }
        catch (NoSuchAlgorithmException e)
        {
            throw new Error("No MD5 support in this VM.");
        }

        StringBuilder hashString = new StringBuilder();
        for (int i = 0; i < hash.length; i++)
        {
            String hex = Integer.toHexString(hash[i]);
            if (hex.length() == 1)
            {
                hashString.append('0');
                hashString.append(hex.charAt(hex.length() - 1));
            }
            else
                hashString.append(hex.substring(hex.length() - 2));
        }
        return hashString.toString();
    }
    
	public static void main(String[] args)
	{

		String filePath = "testPasBin.txt"; // mon dico
		String hashs, md5;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("entrez votre hash");
		md5 = sc.nextLine();
		System.out.println("[======================================================================]");
		
		try
		{ 
			Scanner scanner=new Scanner(new File(filePath));

			while (scanner.hasNextLine()) 
			{
				String line = scanner.nextLine();
				hashs = encode(line);
				
				if(hashs==md5)//si un hash correspond // c'est ici que ça coince
				{
					System.out.println("******************************************************");
					System.out.println("**********************"+line+"************************");
					System.out.println("******************************************************");
				}
			 
				//System.out.println(line);*/
				System.out.println(encode(line));
			}
			
			scanner.close();
		}catch (FileNotFoundException e){e.printStackTrace();}
		
		System.out.println("[======================================================================]");
	}
}

et voila une screen explicitant le probleme
screenshot

on voit bien que un des hash généré à partir du dico est égal à mon hash entré, cependant, le if ( de la ligne 59 ) ne se déclenche pas, et donc je ne peut pas savoir à quel mot correndpond ce hash hmm

De plus, si vous aavez des idées d'amélioration, je suis preneur smile

Dernière modification par warfares (01-08-2013 01:55:01)

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#2 31-07-2013 18:25:21

spawn
Modérateur
Inscription : 14-01-2011
Messages : 1 008

Re : [RÉSOLU][JAVA] probleme script md5/dico

Quelle idée de le faire en java alors qu'un grep $hash dico suffit ?
hmm


@9b0ae3c4 méric.fr
be a pro hacker : python -c "exec ''.join([chr(ord(i)^0x46) for i in '/+6)42f)5}f)5h5?52#+nd4+fk4 f8ido'])"

Hors Ligne

#3 31-07-2013 18:59:02

warfares
Membre Hyperactif
Inscription : 01-04-2013
Messages : 52

Re : [RÉSOLU][JAVA] probleme script md5/dico

En fait, le but final est de faire du cassage distribué ( quand mon niveau aura un peu evolué cool ),  notemment sur android ( quand je vois que le galaxy S4 d'un pote est  "2 fois plus puissant" que mon netbook... )
De plus avec grep, il aurait fallu que le dico contienne directement les hash non ?

Hors Ligne

#4 01-08-2013 00:34:07

warfares
Membre Hyperactif
Inscription : 01-04-2013
Messages : 52

Re : [RÉSOLU][JAVA] probleme script md5/dico

j'ai trouvé, c'est tout bête en fait dans la condition

 if(hashs==md5) 

je vérifiais si les 2 références correspeondent à la même instance ... ce qui n'était pas du totu ce que je voulais. le bon code est donc

 if(hashs.compareTo(md5) == 0) 

Si jamais yen a que ça intéresse, voilà le code remanié, j'ai rajouté la mise en argument du chemin du dico, et quelques autre petits trucs

import java.util.Scanner;
import java.io.*;
import java.io.File;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Ligne
{
	
   private static String encode(String password) // méthode création du hash
    {
        byte[] uniqueKey = password.getBytes();
        byte[] hash      = null;

        try
        {
            hash = MessageDigest.getInstance("MD5").digest(uniqueKey);
        }
        catch (NoSuchAlgorithmException e)
        {
            throw new Error("No MD5 support in this VM.");
        }

        StringBuilder hashString = new StringBuilder();
        for (int i = 0; i < hash.length; i++)
        {
            String hex = Integer.toHexString(hash[i]);
            if (hex.length() == 1)
            {
                hashString.append('0');
                hashString.append(hex.charAt(hex.length() - 1));
            }
            else
                hashString.append(hex.substring(hex.length() - 2));
        }
        return hashString.toString();
    }
    
//=========================================WARFARES====================================================    
    
	public static void main(String[] args)
	{
		 if (args.length != 1)
        {
            System.out.println("Usage: java Ligne /path/to/dictionnary");
        }
        else
        {
			String filePath = args[0]; // mon dico
			String hashs, md5;
			Scanner sc = new Scanner(System.in);
			boolean act = true; // to exit the program when the hash was found
			long startTime = System.currentTimeMillis();
			
			System.out.println("entrez votre hash");
			md5 = sc.nextLine();
			//sc.close();
			System.out.println("\t\t****search in progress****");
			try
			{ 
				Scanner scanner=new Scanner(new File(filePath));

				while (scanner.hasNextLine() && act == true) 
				{
					String line = scanner.nextLine();
					hashs = encode(line);
					
					if(hashs.compareTo(md5) == 0)//si un hash correspond // c'est ici que ça coince
					{
						System.out.println("****************************************************************");
						System.out.println("*String -> \t\t ["+line+"]");
						System.out.println("****************************************************************");
						System.out.println("*Hash   -> \t\t ["+encode(line)+"]");
						System.out.println("****************************************************************");
						System.out.println("*time   -> \t\t  "+(System.currentTimeMillis() - startTime)+"  (ms)");
						System.out.println("****************************************************************");
						act = false;
					}
				 
					//System.out.println(line);*/
					//System.out.println(encode(line));
				}
				if(act == true)
				{
					System.out.println("****************************************************************");
					System.out.println("*\t\t\t Hash not found");
					System.out.println("****************************************************************");
					System.out.println("*time   -> \t\t"+(System.currentTimeMillis() - startTime)+" (ms)");
					System.out.println("****************************************************************");
				}
				
				scanner.close();
			}catch (FileNotFoundException e){e.printStackTrace();}
			
		}
	}
}
//       00194d5228efbc09fc36352f2eaa4567  -> to test

Cependant ça ne fonctionne pas avec les dictionnaires de "grande taille" par exemple 3,9mB, ca saute la boucle de comparaison.
est-ce à cause de l'utilisation d'un scanner pour lire le fichier ?

Cependant je ne sais pas pourquoi, mais il ne fonctionne pas avec un (seul) de mes dico

Dernière modification par warfares (01-08-2013 01:57:26)

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

Pied de page des forums


Le coin des bonnes affaires, achats informatiques:


|   Alfa 1000 mW AWUS036H   |    Linksys WRT54GL   |    Misco, informatique   |   
 |    Ebay   |    PC portables   |    PC Gamers & Tuning   |    Cles USB   |   
|   Disques durs externes 2 To   |   
|   Wifi-highpower.com   |   


Server Stats - [ Generated in 0.025 seconds ]   Forum Stat - [ Most users ever online on the forum was : 150 on 20-09-2009 17:06:59 ]