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 :
Cela appel donc plusieurs fois la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 //=== 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; } } } }
Qui elle même appel plusieurs fois la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //=== Fonction de Brute Force ======================================= //=================================================================== private void BruteForce(String charset, int wordLength, string pass) { .... }
Le Programme fonctionne parfaitement si la valeur de "passLengthMax" ne dépasse pas 4. Au delà sa se fige...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <code type="csharp"> //=== Fonction de hachage MD5 ======================================= //=================================================================== private string GetMD5Hash(string str) { .... }
Donc maintenant je tente de créer un thread, j'ajoute la bibli --->
et je le crée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part using System.Threading;
mais je ne sais pas ou le mettre et si c'est correct
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //On crée le thread. Thread t1 = new Thread(new ThreadStart(BruteForce(lowerAlpha, i, hash))); //Puis on le lance ! t1.Start();
Merci d'avance pour votre aide...
Partager