Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme freeze, aide ajouter thread

    19 avril 2011 à 16:20:09

    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.

    J'ai également trouvé le tuto du site du zéro ici : http://www.siteduzero.com/tutoriel-3-2 [...] ads-en-c.html

    Mais je n'y arrive pas à l'adapter à mon code...

    Voici le code du bouton pour lancer l'application :



    //=== 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

    //=== Fonction de Brute Force ======================================= 
    //===================================================================
    private void BruteForce(String charset, int wordLength, string pass)
    {
       ....
    }
    


    Qui elle même appel plusieurs fois la fonction

    //=== Fonction de hachage MD5 =======================================
    //===================================================================
    private string GetMD5Hash(string str)
    {
       ....
    }
    


    Le Programme fonctionne parfaitement si la valeur de "passLengthMax" ne dépasse pas 4. Au delà sa se fige...

    Donc maintenant je tente de créer un thread, j'ajoute la bibli ---> using System.Threading; et je le crée :

    //On crée le thread.
    Thread t1 = new Thread(new ThreadStart(BruteForce(lowerAlpha, i, hash)));

    //Puis on le lance !
    t1.Start();

    mais je ne sais pas ou le mettre et si c'est correct

    Merci d'avance pour votre aide...
    • Partager sur Facebook
    • Partager sur Twitter

    Programme freeze, aide ajouter thread

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown