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

C++/CLI Discussion :

Dump RAM & simulation touche clavier


Sujet :

C++/CLI

  1. #1
    Nouveau membre du Club
    Profil pro
    Etudiant
    Inscrit en
    Novembre 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Etudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par d�faut Dump RAM & simulation touche clavier
    Bonjour / bonsoir,


    Je viens tout doucement sur les forums suite � mes recherches nombreuses (trop ou mauvaise) sur un probl�me que j'ai depuis pas mal de jour (heures devant le pc ). Je suis actuellement en train de r�aliser un petit programme doit me permettre de faire 2 choses. Simuler des appuis de touches claviers et lire une partie de la m�moire d'un processus. Je me suis donc pench� sur le C++ et la winAPI . Gros poissons bien compliqu�.

    Dans un premier temps, mon programme peut simuler les appuis de touches claviers (en cliquant sur un bouton, une recherche du process, un focus, un envoi est r�alis�). J'utilise FindWindow, SetForegroundWindow et keybd_event. Cette partie l� fonctionne tr�s bien sauf si je d�cide de ne plus focus mon process.... Du coup premi�re petite question, est-il possible d'injecter dans un process / dans une fen�tre non focus, l'appui du touche clavier. Je suis passer par PostMessage, mais sans succ�s. Y a-t-il un autre moyen ?

    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
     
        HWND myWindow; uint keyCode;
        const TCHAR str[11] = TEXT("MonProcessChercher");
        LPCTSTR h =(const TCHAR *)str;
     
        myWindow = ::FindWindow(NULL,h);
        if(myWindow == NULL)
            qDebug() << "failed to find";
     
        if(!SetForegroundWindow(myWindow))
            qDebug() << "Unsucessful  foreground window";
     
        keyCode = VK_CONTROL;
        keybd_event(VK_CONTROL, 0x9D, 0, 0); 
        keybd_event(0x2E, 0x2E, 0, 0);		
        ::Sleep(1);
        keybd_event(VK_CONTROL, 0x9D, KEYEVENTF_KEYUP, 0);
        keybd_event(0x2E, 0x2E, KEYEVENTF_KEYUP, 0);
    Mon deuxi�me probl�me est l�g�rement plus compliquer (ou pas). J'arrive � trouver mon processus, et � r�cup�rer l'adresse m�moire "basse". Je la compare avec OllyDbg et je trouve une adresse identique. Par contre, et c'est l� que je me paume un peu, sur OllyDbg, on peut voir les diff�rentes Adresse, taille, section, "contains",... Je souhaiterai pouvoir faire la m�me chose avec mon programme mais pour mon processus.

    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
     
        hwnd = FindWindow(NULL,L"MonProcessChercher");
        if(!hwnd)
            qDebug() << "not found!";
     
        // Get Process
        GetWindowThreadProcessId(hwnd, &pid); // Get the process id and place it in the PID
        HANDLE phandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid); // Get permission to Read & Write
        if(!phandle)
            qDebug() << "Could not get handle !";
     
        DWORD_PTR base = GetModuleBase(pid);
     
        qDebug() << " nouvelle base :" << QString::number(base,16);
     
        ReadProcessMemory(phandle,(void*)base,&value,sizeof(double),0); // read what is in "address" and store it in "value"
        ReadProcessMemory(phandle,(void*)base,&myValue,sizeof(myValue),0);
    Comment peut-on d�terminer la taille que prend une application (adresse "basse" et adresse "haute"), comment peut-on la "parser",comme par exemple OllyDbg, pour retrouver les diff�rentes sections tel que les Data, Ressources, Relocations...


    Je sais que je demande beaucoup de choses et que je fournis peu ... Je comprendrai aussi tr�s bien si des personnes me redirige vers un sujet d�j� existant ou des tutos "bien fait" � sur ces sujets. J'ai pas mal cherch� et j'ai eu un peu de mal � trouver (je cherche peut-�tre mal aussi mais c'est une autre histoire).

    D'avance merci pour vos r�ponses et votre aide.
    Naevis.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Le rapport avec le C++/CLI, domaine de ce forum ?

    Tu sais, pour faire des bots, il doit exister des SDK de hackers, pas besoin de r�inventer la roue.

    est-il possible d'injecter dans un process / dans une fen�tre non focus, l'appui du touche clavier.
    Oui, mais rien de g�n�rique, c'est fonction des frameworks utilis�s.

    on peut voir les diff�rentes Adresse, taille, section, "contains",... Je souhaiterai pouvoir faire la m�me chose avec mon programme mais pour mon processus.
    Il faut �tre plus pr�cis dans vos questions.
    On n'a pas forcement envie d'installer OllyDbg, juste pour r�pondre � des questions flous.
    "mon processus", c'est votre programme ou votre "cible" ?

    la taille que prend une application (adresse "basse" et adresse "haute")
    C'est quoi "la taille" ???
    Un processus prend tout l'espace qu'il peut adresser (4GB en 32 bits, tout plein en 64bits), voir plus avec les extensions mat�rielles.

    comment peut-on la "parser"
    https://msdn.microsoft.com/fr-fr/lib...or=-2147217396

    pour retrouver les diff�rentes sections tel que les Data, Ressources, Relocations...
    https://msdn.microsoft.com/fr-fr/lib...or=-2147217396

  3. #3
    Nouveau membre du Club
    Profil pro
    Etudiant
    Inscrit en
    Novembre 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Etudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par d�faut
    Bonjour bacelar,

    Tout d'abord merci pour votre r�ponse et les deux liens propos�s que je vais analyser et voir si cela correspond � mon probl�me. En effet, je me suis peut-�tre tromper de section C++ /CLI. J'aurai d� le poster dans la partie C++... Erreur de ma part. Est-il possible de le d�placer dans un endroit plus g�n�rique ?

    Oui l'id�e est de cr�er un "bot". Mais plus pour un simulateur de vol. le but est de r�aliser un pilote automatique (qui n'est de base pas int�grer dans le simulateur). Du coup, j'essaie de faire un programme tier pouvant r�aliser cette fonction et donc via des simulations de touches claviers pour r�gler / v�rifier diff�rents param�tres qui seront lu via la m�moire (coordonn�es, altitude, vitesse, etc).

    Via le second code pr�senter, je r�cup�re l'adresse basse du simulateur pr�sent dans la RAM (GetModuleBase(pid)).
    OllyDbg me retourne ce type d'information :
    Address Size Owner Section Contains Type Access Initial Access
    04470000 00001000 Simulateur PE header Img 01001002 R RWE CopyOnWr
    04471000 00625000 Simulateur .text Code Img 01001020 R E RWE CopyOnWr
    04a96000 000a5000 Simulateur .rdata Imports,exports Img 01001002 R RWE CopyOnWr
    04b3b000 07b72000 .data Data Img 01001008 RW CopyOnWr RWE
    0c6ad000 00001000 Simulateur _RDATA Img 01001002 R RWECopyOnWr
    0c6ae000 000b6000 Simulateur .rsrc Resources Img 01001002 R RWECopyOnWr
    0c764000 0005a000 Simulateur .reloc Relocations Img 01001002 R RWECopyOnWr

    Via la fonction pr�c�demment cit� (GetModuleBase(pid)), je r�cup�re l'adresse 04470000. L� o� je coince depuis un moment, c'est de r�cup�rer la derni�re adresse, c764000, ainsi que sa taille (size). J'ai fais plusieurs recherches et j'ai trouv� ce matin ceci : https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx. Je ne sais pas ci c'est une bonne piste pour mon probl�me.

    En faite, je souhaite pouvoir r�cup�rer une partie de la m�moire pour pouvoir l'analyser et agir en cons�quence sur mon pilote auto.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Avant de passer des semaines juste pour faire marchouiller un truc qui fonctionnera que sur votre machine, tant que votre anti-virus sera trop con pour faire son taf et tant qu'il n'y aura pas de mise � jour du simulateur.
    Avez-vous v�rifi� que le d�veloppeur du simulateur n'offre pas un SDK ou des outils d�di�s de customisation ?

  5. #5
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 537
    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 537
    Par d�faut
    Citation Envoy� par Naevis Voir le message
    Oui l'id�e est de cr�er un "bot". Mais plus pour un simulateur de vol. le but est de r�aliser un pilote automatique (qui n'est de base pas int�grer dans le simulateur)..
    quel simulateur ?
    Il n'y a pas de SDK ?
    Pour peu que celui-ci utilise DirectInput une composante de Direct X (qui n'�volue plus ) eh bien les API win32 risquent de ne pas fonctionner

  6. #6
    Nouveau membre du Club
    Profil pro
    Etudiant
    Inscrit en
    Novembre 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Etudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par d�faut
    Cher bacelar,

    De nouveau merci pour votre r�ponse par contre :
    juste pour faire marchouiller un truc qui fonctionnera que sur votre machine, tant que votre anti-virus sera trop con pour faire son taf et tant qu'il n'y aura pas de mise � jour du simulateur.
    Cela est d'une aide � marche r�duite

    Cher Mat.M,

    Merci pour votre r�ponse.

    Ensuite, il existe un fichier *.h donnant acc�s � des �l�ments de m�moires partag�s et certain �l�ments dont j'ai besoin ne sont h�las pas pr�sent et donc je me tourne vers la m�moire "non partag�e" pour essayer de trouver les informations..
    Pas mal de personnes ont d�velopp� des applications mais ce que je r�alise est assez sp�cifique et peu voir personne ne l'a r�alis�.

    Pour la partie DirectInput, oui les touches sont configur�s de la sorte (Hotas, MFD,etc.). Du coup, � la r�flexion faite, est-ce pour cela que je doive passer par le keybd_event() avec un focus sur la fen�tre cible ? Et que donc Post_Message() ne peut fonctionner. Si oui, je peux le laisser comme �a. Je laisserai donc cette partie comme cela, en essayant d'am�liorer quelques points (j'ai quelques id�es d'�volution � ce sujet).

    EDIT :
    Apr�s lecture des liens donn� plus haut, et quelques recherches sur le sujet, j'ai pu r�pondre � mon probl�me pour la lecture de la m�moire. Une solution simple a �t� mise en place pour la partie keybd_event.

    Merci pour l'aide.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Simuler touche clavier PrintScreen
    Par Valarauko dans le forum G�n�ral Conception Web
    R�ponses: 2
    Dernier message: 25/01/2010, 09h49
  2. Simuler Touche Clavier
    Par jcharles dans le forum D�buter
    R�ponses: 11
    Dernier message: 23/04/2009, 14h35
  3. Simuler touche clavier
    Par Razor620 dans le forum C++
    R�ponses: 2
    Dernier message: 15/04/2009, 13h30
  4. Simuler touche clavier
    Par damien27000 dans le forum Linux
    R�ponses: 2
    Dernier message: 24/07/2007, 13h56
  5. Simulation touche clavier
    Par tigana dans le forum G�n�ral Dotnet
    R�ponses: 3
    Dernier message: 05/05/2006, 12h00

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