Comprendre le brute forcing

Résolu
dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012 - 2 févr. 2009 à 10:18
dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012 - 2 févr. 2009 à 17:43
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

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 févr. 2009 à 14:02
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.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 févr. 2009 à 15:17
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.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 févr. 2009 à 15:30
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.
3
dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012
2 févr. 2009 à 14:19
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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012
2 févr. 2009 à 15:20
et c'est impossible de faire sa en c ou cpp.
0
dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012
2 févr. 2009 à 17:43
ha je vois sa a laire tres interessans mais.
merci et a++
0
Rejoignez-nous