Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

[C++] Trouver une adresse memoire automatiquement




  1. #1
    Twcd

    [C++] Trouver une adresse memoire automatiquement

    Bonjour,

    J'ai développer une petite application qui va lire dans la memoire d'une autre application ... Jusqu’au aujourd'hui je devais chercher l’adresse qui m’intéresse avec cheat engine et recompiler le programme.
    Sauf que je voudrais améliorer sa. Je découvre tout juste tout ce qui est lecture de mémoire etc ... Je ne suis donc pas un pro en la matière.

    Comment je pourrais trouver donc la variable qui m’intéresse automatiquement au démarrage de mon programme ? Merci de m'aider

    -----


  2. Publicité
  3. #2
    Chanur

    Re : [C++] Trouver une adresse memoire automatiquement

    C'est à l'offset 42 à partir du début de la mémoire utilisée par le programme.

    Ou, si ce n'est pas ça, il faudrait peut-être qu'on ait un tout petit peu plus d'information sur "l’adresse qui m’intéresse" ou "la variable qui m’intéresse". Parce que là ...
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  4. #3
    Ikhar84

    Re : [C++] Trouver une adresse memoire automatiquement

    Citation Envoyé par Chanur Voir le message
    C'est à l'offset 42 à partir du début de la mémoire utilisée par le programme.

    Ou, si ce n'est pas ça, il faudrait peut-être qu'on ait un tout petit peu plus d'information sur "l’adresse qui m’intéresse" ou "la variable qui m’intéresse". Parce que là ...
    Le demandeur veut coder un soft qui peut acceder à la mémoire protégée d'un jeu lancé au préalable et donc aux variables comme nombres de vies, pièces (d'or), etc... pour les modifier et s'octroyer l'immortalité virtuelle, la richesse...
    (Le/les jeux ne sont pas précisés...).

    Autrement dit, tricher dans le jeux...

    Ou pire... acceder aux test d'activation et les contourner...

    Je penche plus vers la première hypothèse, la seconde pouvant être réalisée sans charger le jeu en RAM...

    Qu'en dit la charte ?
    J'ai glissé Chef !


  5. #4
    Twcd

    Re : [C++] Trouver une adresse memoire automatiquement

    Alors non ce n'est pas pour accéder a la mémoire d'un jeux pour tricher ^^ Mon but n'est pas de modifier les valeur mais de simplement les lire.

    Donc enfaite je souhaite récupérer un tableau de 512 valeur dans un autre logiciel (ce qui fonctionne deja) le tableau contiens donc des valeur en HEX de 00 a FF ce qui est évident.

    Et je souhaite donc automatiser pour trouver ce tableau. Sauf que je me pose plusieurs question. Nous somme d'accord que une application ce voit attribuer d'une adresse X jusqu'a une autre adresse X. Ce qui veut dire que si j'ai l’adresse de départ de l'application de peut partir du principe que le tableau et par exemple 50 valeur âpres le début ? Il faut savoir aussi que les valeur change a chaque fois.

  6. #5
    Twcd

    Re : [C++] Trouver une adresse memoire automatiquement

    Au passage voici le bout de code en question :

    Code:
    Alors non ce n'est pas pour accéder a la mémoire d'un jeux pour tricher ^^ Mon but n'est pas de modifier les valeur mais de simplement les lire.
    
    Donc enfaite je souhaite récupérer un tableau de 512 valeur dans un autre logiciel (ce qui fonctionne deja) le tableau contiens donc des valeur en HEX de 00 a FF ce qui est évident.
    
    Et je souhaite donc automatiser pour trouver ce tableau. Sauf que je me pose plusieurs question. Nous somme d'accord que une application ce voit attribuer d'une adresse X jusqu'a une autre adresse X. Ce qui veut dire que si j'ai l’adresse de départ de l'application de peut partir du principe que le tableau et par exemple 50 valeur âpres le début ? Il faut savoir aussi que les valeur change a chaque fois.
    
    Code:
    DWORD initaddress = 0x039D5B00;
    DWORD address = initaddress;
    uint8_t value[512] = { 0 };
    DWORD pid;
    HWND hwnd;
    //address += 1;
    hwnd = FindWindow(NULL, "test");
    
    if (!hwnd)
    {
    	printf("Window not found!\n");
    
    }
    else
    {
    	GetWindowThreadProcessId(hwnd, &pid);
    	HANDLE phandle = OpenProcess(PROCESS_VM_READ, 0, pid);
    	if (!phandle)
    	{
    		printf("Could not get handle!\n");
    
    	}
    	else
    	{
    		while (1)
    		{
    
    			ReadProcessMemory(phandle, (void*)address, &value, sizeof(value), 0);
    			for (int i = 0; sizeof(value) >= i; i++)
    			{																
    				myDmx[i] = value[i - 1];								
    			}
    							
    
    			res = FTDI_SendData(SET_DMX_TX_MODE, myDmx, DMX_DATA_LENGTH);
    			// check response from Send function
    			/*if (res < 0)
    			{
    				printf("FAILED: Sending DMX to PRO \n");
    				FTDI_ClosePort();
    				break;
    				return -1;
    				}*/
    							
    		}
    		/*address += 2;
    		ReadProcessMemory(phandle, (void*)address, &value, sizeof(value), 0);
    
    		cout << unsigned(value) << "\n";
    		Sleep(10000);*/
    		return 0;
    	}
    }

  7. A voir en vidéo sur Futura
  8. #6
    JPL

    Re : [C++] Trouver une adresse memoire automatiquement

    Citation Envoyé par Twcd Voir le message
    Alors non ce n'est pas pour accéder a la mémoire d'un jeux pour tricher ^^ Mon but n'est pas de modifier les valeur mais de simplement les lire.
    Quel est l’intérêt de cette opération ?
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  9. #7
    Twcd

    Re : [C++] Trouver une adresse memoire automatiquement

    Recuperer les valeur pour les renvoyer sur un boitier vie le port COM. (on peut le voir dans le code)

  10. Publicité
  11. #8
    polo974

    Re : [C++] Trouver une adresse memoire automatiquement

    Et ça doit tourner sur zx81, Atari ou comodore64 ? ? ?
    Ou bien sur pdp11 sous vms ? ? ?
    Le mieux est l'ennemi du bien, et c'est bien mieux comme ça...

  12. #9
    Twcd

    Re : [C++] Trouver une adresse memoire automatiquement

    Sous absolument rien de tout sa ^^ Je renvoie simplement les valeur DMX vers mon boitier DMX rien de plus compliquer que sa ^^

  13. #10
    albanxiii

    Re : [C++] Trouver une adresse memoire automatiquement

    Citation Envoyé par JPL Voir le message
    Quel est l’intérêt de cette opération ?
    Lire des mots de passe ou des clés de cryptographie, bien sur.
    Not only is it not right, it's not even wrong!

  14. #11
    Twcd

    Re : [C++] Trouver une adresse memoire automatiquement

    Pourquoi vous chercher a dire que je cherche a faire quelque chose de mal ? ...
    Je demande de l'aide on dit que je suis un bandit...
    Comme je les expliquer. Mon but et de récupérer un array dans un programme et le renvoyer sur un port serie qui n'est que un boitier DMX...
    Le but d'un boitier DMX au cas ou vous le saviez pas, sa sert simplement a contrôler des lumière. Je vois pas ce qui a un rapport avec voler des mot de passe.

  15. #12
    Ikhar84

    Re : [C++] Trouver une adresse memoire automatiquement

    Parceque le rôle d'un OS (entre autres) est justement à veiller à ce qu'un programme donné n'est normalement pas accès à la mémoire d'un autre programme en cours d'execution...
    Sinon la porte serait ouverte à tous méchants

    Bien sûr c'est faisable, mais des logiciels qui communiquent ensemble (ou partage des zones mémoire) légitimment c'est plus propre et moins sujet à caution, mais là il faut avoir recours aux codes sources des deux...

    Peut tu préciser quel est ce fameux logiciel, et pourquoi tu veux acceder à cet array ?
    Cela deliera les langues si c'est legitime, bien que personnellement je n'en vois pas la légitimité, ne serait ce que parce que l'auteur du dit programme ne serait sûrement pas d'accord pour que tu accèdes à la mémoire "protégée" de son soft, ou des truc genre décompilateur....

    (Du genre cheat engine...)...
    J'ai glissé Chef !

  16. #13
    lou_ibmix_xi

    Re : [C++] Trouver une adresse memoire automatiquement

    Parceque le rôle d'un OS (entre autres) est justement à veiller à ce qu'un programme donné n'est normalement pas accès à la mémoire d'un autre programme en cours d'execution...
    Oui, c'est le "segmentation fault". Ceci dit, si ta CPU est un INTEL, tu peux exploiter meltdown pour arriver à tes fins...
    certains adhèrent au principe du tiers exclu, d'autres pas, moi c'est aucun des deux.

  17. #14
    polo974

    Re : [C++] Trouver une adresse memoire automatiquement

    Citation Envoyé par Twcd Voir le message
    Sous absolument rien de tout sa ^^ Je renvoie simplement les valeur DMX vers mon boitier DMX rien de plus compliquer que sa ^^
    Et donc, ça tourne sur quoi tes softs ? ? ?

    Selon le système et tes droits, ce sera entre facile et quasi impossible (sauf à exploiter un faille comme l'a gentiment suggéré lou_ibmix_xi).
    Le mieux est l'ennemi du bien, et c'est bien mieux comme ça...

  18. #15
    pm42

    Re : [C++] Trouver une adresse memoire automatiquement

    Ben il a quand même donné le code qu'il utilise ce qui permet de savoir qu'il fonctionne sous Windows et qu'il n'a besoin que des droits que donne l'attachement de processus classique en debugging.

    Sa question me semble plus porter sur la façon de rendre ce code paramètrable sans avoir à le recompiler à chaque fois.

  19. #16
    Ikhar84

    Re : [C++] Trouver une adresse memoire automatiquement

    Citation Envoyé par pm42 Voir le message
    Ben il a quand même donné le code qu'il utilise ce qui permet de savoir qu'il fonctionne sous Windows et qu'il n'a besoin que des droits que donne l'attachement de processus classique en debugging.

    Sa question me semble plus porter sur la façon de rendre ce code paramètrable sans avoir à le recompiler à chaque fois.
    Pas compris ça moi, je pensais qu'il souhaitait que son soft "scan" le contexte mémoire d'un autre soft à la recherche de l'adresse d'un tableau précis, sinon il suffirait de lui donner l'adresse du debut du tableau en argument, en ligne de commande, mais comme le code donné est partiel...

    Sinon je ne connais que deux solutions sous Windows (enfin, je connais c'est vite dit...), mais il faudrait qu'il nous donne un peu plus d'explication et qu'il nous convainc qu'il est en droit de farfouillé dans la mémoire d'un soft sur lequel il n'a aucun droit, et qu'ensuite, les infos données ne serviront pas à faire quelque chose de méchant (par un éventuel autre lecteur de ce fil...)
    Quoiqu'il en soit, c'est une façon de faire violente et qui va à l'encontre des règles des OS (et des licenses des soft utilisés...).

    On attend donc plus d'infos sur le pourquoi du bidule (dmx ok mais why ? Éclairage disco ?) et surtout quel est le soft (nom, commercial, open source ?!?) qui va être violenté ?
    Dernière modification par Ikhar84 ; 14/01/2018 à 13h17. Motif: Fôtes !
    J'ai glissé Chef !

  20. #17
    pm42

    Re : [C++] Trouver une adresse memoire automatiquement

    En même temps et dès les 1er posts, il a été accusé de pas mal de choses...
    Alors qu'il aurait été possible de lui poser des questions.

    De même, lui demander sur quel OS ça tourne sans lire le code qu'il a posté me semble là aussi assez peu bienveillant.

  21. #18
    polo974

    Re : [C++] Trouver une adresse memoire automatiquement

    Citation Envoyé par pm42 Voir le message
    ...
    De même, lui demander sur quel OS ça tourne sans lire le code qu'il a posté me semble là aussi assez peu bienveillant.
    Désolé si j'ai zappé les apis win32 que je n'utilise plus depuis belle lurette...

    Je déteste devoir fouiller du code pour deviner une info qui peut être donnée au départ.

    En passant, avant de quitter ce navire, ça va pas la faire dans la boucle (quand i = 0):

    myDmx[i] = value[i - 1];
    Le mieux est l'ennemi du bien, et c'est bien mieux comme ça...

Discussions similaires

  1. Adresse mémoire à lire / API Omron
    Par fveto dans le forum Électronique
    Réponses: 0
    Dernier message: 13/08/2015, 07h41
  2. Probleme plage adresse mémoire FLASH PIC18
    Par Pilou81 dans le forum Électronique
    Réponses: 19
    Dernier message: 28/01/2011, 16h55
  3. Adresse memoire
    Par abouzahir2007 dans le forum Électronique
    Réponses: 7
    Dernier message: 26/10/2009, 21h15
  4. Adresse Case mémoire PIC16F628
    Par zied74 dans le forum Électronique
    Réponses: 3
    Dernier message: 07/08/2009, 12h11
  5. Dip switchs et adresse mémoire
    Par tonyman dans le forum Électronique
    Réponses: 3
    Dernier message: 11/03/2008, 18h22