Comprendre le brute forcing

Résolu
Signaler
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012
-
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012
-
bonjour a tous,
je que je veut comprendre c'est pas comment créer l'ago mais comment lappliquer sur une aplication que utilise un passe.
moi ce que je veut c'est créer un brute dorce que peut craquer le passe de mon programme.
je presise que mon programme est avec une interface graphique et au demaraque il y a une boite de dialogue qui demande le passe.


merci et a ++

6 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,

Tu peux faire un truc plus ou moins basique... Voici un exemple très basique :
<hr size="2" width="100%" />#include <windows.h>

#define NB_KEYS 12

TCHAR lpKeys[NB_KEYS] = {'H', 'E', 'L', 'L', 'O', VK_SPACE,
                         'W', 'O', 'R', 'L', 'D', VK_RETURN};

int WINAPI WinMain(  
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow)
{
  HWND hWin;
  int i;

  hWin = FindWindow("Notepad", NULL);
 
  if (hWin)
  {
    hWin = GetWindow(hWin, GW_CHILD);
    if (hWin)
      for (i = 0; i < NB_KEYS; i++)
      {
        PostMessage(hWin, WM_KEYDOWN, lpKeys[i], 0);
        Sleep(10);
      }
  }
  return 0;
}
<hr size="2" width="100%" />Si tu lance un bloc note (notepad) et que tu exécute ce programme, "hello world" va être écrit dedans, avec un retour chariot à la fin, souvent synonyme de validation dans le cas d'un mot de passe.

PostMessage est utilisé pour envoyé les caractères un à un à l'aide d'un message WM_KEYDOWN. Un WM_SETTEXT aurait pu être utilisé, quoiqu'il y a plus de code à écrire, car il faut allouer une zone dans le processus distant. Par contre, WM_SETTEXT est probablement plus rapide à l'exécution, ce qui est important dans le cas de la force brute.

Concernant le récupération du handle de la fenêtre, il y a différentes fonctions disponibles et diverses façon d'arriver à ses fins. Par exemple :
1) CreateToolhelp32Snapshot pour trouver le processus associé à un nom de .exe entré par l'utilisateur.
2) EnumWindows pour lister les fenêtres principales.
3) GetWindowThreadProcessId pour voir si le handle de fenêtre principal correspond au PID trouvé à l'aide de CreateToolhelp32Snapshot.

Une autre implémentation via WindowFromPoint peut être une alternative tout aussi intéressante.

Quoiqu'il en soit, la force brute, ça reste pour les brutes... Un petit désassemblage peut s'avérer beaucoup plus intéressant.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Fais un peu attention à ton français s'il te plait, il est pire que le mien. Les principaux navigateurs proposent la correction auto ou ont des plugins qui le propose.

Concernant la méthode alternative, elle peut être plus efficace, mais ça dépend des compétences de celui qui l'applique et du code utilisé pour vérifier le mot de passe.

Avant tout chose, il faut apprendre l'assembleur. Quelques connaissances sur l'API Win32 s'avèrent aussi nécessaires. Une fois qu'on connait un peu l'assembleur et le Win32, on comprend rapidement comment exploiter ces connaissances pour esquiver une validation de mot de passe.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Bin non. Ce n'est pas écrire du code, c'est lire le code de quelqu'un d'autre qui ne te l'a pas fourni. Mais même s'il ne te donne pas son code, tu peux toujours (Ou presque) récupérer le "source" assembleur.




Source C -> .exe -> assembleur -> .exe modifié


Première traduction réalisée par un compilo, deuxième traduction réalisée par un désassembleur, troisième traduction réalisée par un assembleur.
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012

je te remerci vraiment pour ta reponce,
j'avai pencer a sa mais je ne savai pas qu'on pouvai le faire avec des fonction de windows.
quand tu dit "Un petit désassemblage peut s'avérer beaucoup plus intéressant."
sa veut dire koi. existe t'il dotre moyen plus efficasse pour casser un pass.
merci encor pour ta reponce++
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012

et c'est impossible de faire sa en c ou cpp.
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012

ha je vois sa a laire tres interessans mais.
merci et a++