IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Boot forcing ?


Sujet :

SDL

  1. #1
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut Brute force ?
    Je prepare actuellement les TPE de premiere S ( et oui déjà ), et mon copiaule et moi avons pensé a faire un exposé sur les cartes bleues, leurs performances et leurs défaillances.
    Je me suis renseigné: je suis en train de "reproduire" ( pas entierement, juste l'essentiel ) l'algorythme de cryptage de la VS de la puce de la carte ( cryptée en Triple DES puis en autre chose mias je n'exposerai au jury que le Triple DES ).
    J'ai également créé un programme qui demande un mot de passe généré aléatoirement et qui fait pour le moment 8 chiffres. Je désirerais savoir s'il était possible de créer en SDL un programme qui simulerais la pression d'une touche au clavier pour tromper le prog qui demande le mot de passe ( ainsi, on pourrait tester toutes les possibilités du code, soit 8 exp(9) solutions ). Je me suis renseigné ( encore ) sur le sujet et on m'a dit que cela s'appellait du "boot forcing"... Pouvez vous m'aider ? Merci.


    PS: Je précise que le mot de passe est un entier. Je compte plus tard ( si j'obtiens des réponses ) faire la meme chose mais avec un mot de passe de 8 voire 56 bits, pour vraiment me rapprocher du sujet de mon TPE ( le mot de passe étant un clé de cryptage pour le DES ).

    RE-PS: Je ne crois pas que j'aie posté dans la bonne section, si vous déplacez le post envoyez moi un MP plhize.

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 386
    Points
    20 386
    Par défaut
    ?? Quel est l'intérêt de prendre SDL ? Qu'est ce que SDL a à voir la dedans ?
    SDL c'est fait pour les graphismes les animations pas pour le système.
    Ce que tu veux faire là il faut utiliser des fonctions systèmes par exemple des hooks clavier sous Windows donc poser la question sur le forum prog windows.
    Mais moi je te conseille vivement de chercher dans le MSDN keyboard hook et la fonction SetKeyboardHook je crois

  3. #3
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Pourquoi ne pas plutôt faire un cas test ?

    Soit avec des outils de tests (par exemple CppUnit).
    Soit ton programme lit l'appui des touches depuis stdin et tu fait un script qui génère tous les appuis de touche possible.

    Si ton programme attend des appuis de touches depuis une interface que tu as fait en SDL, je te conseille de tester le coeur séparément de l'ihm.

  4. #4
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Le mode console suffirait amplement.
    Sinon wxWidgets ou MFC ou autre pour le GUI, la SDL étant plutôt réservé à d'autres choses.

  5. #5
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    Le mode console suffirait amplement.
    Le prog que j'ai fais est en mode console ( un scanf et une boucle )

    ?? Quel est l'intérêt de prendre SDL ? Qu'est ce que SDL a à voir la dedans ?
    SDL c'est fait pour les graphismes les animations pas pour le système.
    Ce que tu veux faire là il faut utiliser des fonctions systèmes par exemple des hooks clavier sous Windows donc poser la question sur le forum prog windows.
    Mais moi je te conseille vivement de chercher dans le MSDN keyboard hook et la fonction SetKeyboardHook je crois
    J'ai cherché dans la doc SDL et je n'ai pas trouvé de fonctions qui me permettent de faire ce que je veux... Pour plus de sureté, j'ai préféré poser la question ici.

    Soit ton programme lit l'appui des touches depuis stdin et tu fait un script qui génère tous les appuis de touche possible.

    Si ton programme attend des appuis de touches depuis une interface que tu as fait en SDL, je te conseille de tester le coeur séparément de l'ihm.
    Je vais faire ça

    Merci pour vos réponses.

    PS: Je me renseignerai pour le hook clavier, mes profs ne savent pas ce qu'est le C, donc j'utiliserai le hook si je veux améliorer le procédé de Brute Force.

  6. #6
    screetch
    Invité(e)
    Par défaut
    salut,

    histoire de ne pas etre ridicule, je pense que la methode dont tu parle est du "brute force" c'est a dire essayer toute les combinaisons sans stratégie.

  7. #7
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    salut,

    histoire de ne pas etre ridicule, je pense que la methode dont tu parle est du "brute force" c'est a dire essayer toute les combinaisons sans stratégie.
    =>

    j'utiliserai le hook si je veux améliorer le procédé de Brute Force.

  8. #8
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Je me renseignerai pour le hook clavier, mes profs ne savent pas ce qu'est le C, donc j'utiliserai le hook si je veux améliorer le procédé de Brute Force.
    Il n'y a clairement pas besoin de faire du "hooking" pour tes besoins.

    donc j'utiliserai le hook si je veux améliorer le procédé de Brute Force.
    Tes propos sont assez confus.
    Le "hook clavier" signifie: filtrer l'activation d'une touche clavier pour un programme donnée.

    Pour la simulation d'un événement clavier, pas besoin de faire du "hooking", un bon article sur developpez.com

    Sinon, pourquoi ne pas faire un menu en mode console qui active la recherche du mot de passe en brute force, sans passer par la simulation d’un événement clavier qui serait beaucoup plus longue et parfaitement inutile.

    Voulez vous retrouver le mot de passe ? o/n
    - Si "o" :
    Recherche du mot de passe en mode "brute force"
    - Si "n" :
    Merci de rentrer le mot de passe.

  9. #9
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    Il n'y a clairement pas besoin de faire du "hooking" pour tes besoins.
    OK

    Tes propos sont assez confus.
    Le "hook clavier" signifie: filtrer l'activation d'une touche clavier pour un programme donnée.

    Pour la simulation d'un événement clavier, pas besoin de faire du "hooking", un bon article sur developpez.com
    Ce lien m'a déjà été donné, j'y ai jeté un coup d'oeil et il semblerait que ce soit ce qu'il me faut ( je n'ai pas fais de test encore ).

    Sinon, pourquoi ne pas faire un menu en mode console qui active la recherche du mot de passe en brute force, sans passer par la simulation d’un événement clavier qui serait beaucoup plus longue et parfaitement inutile.
    En fait l'aspect "algo brute force" ne m'interesse plus tant que ça: j'ai essayé (et réussi) a le reproduire ( sans m'aider d'une quelconque source je veux dire ), et maintenant l'aspect qui me plait et que je veux reproduire est le coté "faire fonctionner un prog avec un autre"... Je ne sais pas si je me suis bien fais comprendre, mais en gros c'est comme si je voulais créer un 'bot casseur de code" qui utilise le brute force ( peut etre apres la méthode par dictionnaire... ).

  10. #10
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    Re bonjour tout le monde !

    Apres quelques semaines difficiles ( travail ... ), j'ai pu enfin retoucher un ordi et programmer.

    J'ai donc continué le projet du bot casseur de codes et j'ai testé le code donné ici, mais le code ne marche pas !
    Je n'ai pas testé avec le lecteur windows media, mais avec le notepad voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <windows.h>
     int main(int argc, char * argv[])
    {
         HWND hMPlayer = FindWindow("Notepad",NULL);
         SetForegroundWindow(hMPlayer);
         PostMessage(hMPlayer,WM_KEYDOWN,'A',0);
         PostMessage(hMPlayer,WM_KEYUP,'A',0);
         return 0;
    }
    J'ouvre un bloc note, je lance le prog, la fenetre arrive bien en premier plan mais la simulation de la touche A ne marche pas !

    Une suggestion ?

    PS: J'ai récupéré ce code, je ne l'ai pas testé mais s'il devait marcher, pourquoi le premier code ne marche t'il pas ?

    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
     
    #include <windows.h>
     
    int WINAPI WinMain(HINSTANCE a,HINSTANCE b, LPSTR c, int d)
    {
      HWND notepad, editbox;
      const char *texte = "Phrase test";    
     
      ShellExecute(0, 0, "notepad", 0, 0, SW_SHOWNORMAL);
      Sleep(500);  
     
      if((notepad = FindWindow("Notepad", 0))){
        if((editbox = FindWindowEx(notepad, 0, "Edit", 0))){
          while(*texte){    
            SendMessage(editbox, WM_CHAR, *texte++, 0);
            Sleep(500);
          }
        }
      }
      return 0;      
    }

  11. #11
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Ton code fonctionne presque.
    Il suffit d'envoyer non pas à la fenêtre "Notepad", mais au composant "Edit" de notepad, comme le programme exemple que tu as cité.

    Si tu lances "spy++" tu pourras voir la hiérarchie des applications lancées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	HWND hMPlayer = FindWindowEx(0,0,"Notepad",0);
    	SetForegroundWindow(hMPlayer);
    	hMPlayer = FindWindowEx(hMPlayer, 0, "Edit", 0);
    	PostMessage(hMPlayer,WM_KEYDOWN,'C',0);
    	PostMessage(hMPlayer,WM_KEYUP,'C',0);

  12. #12
    Membre actif
    Inscrit en
    Septembre 2003
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 391
    Points : 207
    Points
    207
    Par défaut
    quand j'etais jeune (hi hi hi), j'ai fait un truc du genre...
    ca peux se faire en deux coups de cuiller a pot, (sous VB6 ou msAccess)
    en gros, tu programme une simple boucle, et dedans tu balance un : SendKey("{Enter}")
    pour pour le {Enter} je ne suis pas sur de la syntaxe, mais sa te trouve facilement.
    le seul truc auquel i lfaut penser, c'est donner le focus à l'application avant que la boucle commence.
    met un tempo de 2 sec avant: le temps pour l'utilisateur de faire Alt-TAB.

    voilà.
    en tout ca, ca n'a rien a voir avec SDL tout ca...

  13. #13
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    hpfx quand j'etais jeune (hi hi hi), j'ai fait un truc du genre...
    ca peux se faire en deux coups de cuiller a pot, (sous VB6 ou msAccess)
    en gros, tu programme une simple boucle, et dedans tu balance un : SendKey("{Enter}")
    pour pour le {Enter} je ne suis pas sur de la syntaxe, mais sa te trouve facilement.
    le seul truc auquel i lfaut penser, c'est donner le focus à l'application avant que la boucle commence.
    met un tempo de 2 sec avant: le temps pour l'utilisateur de faire Alt-TAB.

    voilà.
    en tout ca, ca n'a rien a voir avec SDL tout ca...
    23/09/2007 18h20
    Ti-R Ton code fonctionne presque.
    Il suffit d'envoyer non pas à la fenêtre "Notepad", mais au composant "Edit" de notepad, comme le programme exemple que tu as cité.

    Si tu lances "spy++" tu pourras voir la hiérarchie des applications lancées.

    Code :
    HWND hMPlayer = FindWindowEx(0,0,"Notepad",0);
    SetForegroundWindow(hMPlayer);
    hMPlayer = FindWindowEx(hMPlayer, 0, "Edit", 0);
    PostMessage(hMPlayer,WM_KEYDOWN,'C',0);
    PostMessage(hMPlayer,WM_KEYUP,'C',0);
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une diquette de boot
    Par gwen-al dans le forum Administration système
    Réponses: 2
    Dernier message: 02/07/2003, 14h48
  2. Structure de la RAM lors du boot
    Par Neo82 dans le forum Assembleur
    Réponses: 7
    Dernier message: 07/03/2003, 09h29
  3. Faire un cold boot
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 06/03/2003, 12h38
  4. Disquette Boot avec message "Bonjour !"
    Par gtr dans le forum x86 16-bits
    Réponses: 11
    Dernier message: 18/01/2003, 16h54
  5. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo