deli2025
Messages postés40Date d'inscriptionvendredi 14 mars 2008StatutMembreDernière intervention 4 mai 2020
-
19 avril 2011 à 16:42
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 2012
-
19 avril 2011 à 17:41
Bonjour, je suis nouveau dans le domaine de c# et j'apprends sur le tas^^
Je viens de créer un petit programme qui hash du texte en sha1 ou md5 et maintenant je me suis lancé dans un programme de BruteForce.
Le problème est donc que le programme va utiliser une boucle pour tester les toutes les combinaisons possibles et que cela le fige...
Je me suis un peu renseigné et je pense que la solution est la création de Threads.
Voici le code du bouton pour lancer l'application :
<code type="csharp">
//Bouton "Brute force"
//===================================================================
private void button1_Click(object sender, EventArgs e)
{
//Si l'input du hash est vide
if (textBox1.Text.Length <= 0)
{
MessageBox.Show("Vous devez entrez un hash avant de lance le programme !", "Brute-Tools By D3L1");
}
//Si l'input du hash est checked et MD5 est plus petit ou plus grand que 32
else if (radioButton1.Checked & textBox1.Text.Length != 32)
{
MessageBox.Show("Une chaine hacher en MD5 doit faire 32 caractères de long !", "Brute-Tools By D3L1");
}
//Si le hash est correct alors on commence
else
{
enCour = 0;
//Récupère la valeur du hash
string hash = textBox1.Text;
//Récupère la valeur de la chaine de caractères "ABCD...."
String lowerAlpha = textBox2.Text;
//La longeur minimal du password en clair
int passLengthMin = 1;
//La longeur maximal du password en clair
int passLengthMax = 30;
//Calcul la longeur du hash et appel la fonction BruteForce
for(int i = passLengthMin; i <= passLengthMax; i++)
{
if (enCour == 0)
{
BruteForce(lowerAlpha, i, hash);
}
else
{
i = passLengthMax;
}
}
}
}
Cela appel donc plusieurs fois la fonction
<code type="csharp">
//Fonction de Brute Force
//===================================================================
private void BruteForce(String charset, int wordLength, string pass)
{
....
}
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 20128 19 avril 2011 à 17:01
Salut,
Le mieux serait d'inclure ta boucle dans le traitement du Thread...
...
}
//Si le hash est correct alors on commence
else
{
// Lancement du thread
Thread thread = new Thread( new ThreadStart( DoTask ) );
thread.Start();
}
et tu ajoutes la méthode suivante :
private void DoTask()
{
enCour = 0;
//Récupère la valeur du hash
string hash = textBox1.Text;
//Récupère la valeur de la chaine de caractères "ABCD...."
String lowerAlpha = textBox2.Text;
//La longeur minimal du password en clair
int passLengthMin = 1;
//La longeur maximal du password en clair
int passLengthMax = 30;
//Calcul la longeur du hash et appel la fonction BruteForce
for(int i = passLengthMin; i <= passLengthMax; i++)
{
if (enCour == 0)
{
BruteForce(lowerAlpha, i, hash);
}
else
{
i = passLengthMax;
}
}
}
Après je ne sais pas où tu stockes le résultat de ton traitement...
Mais si tu as d'autres questions; n'hésites pas