Modifier un processus en mémoire

3/5 (9 avis)

Snippet vu 8 307 fois - Téléchargée 21 fois

Contenu du snippet

Ce code permet d'accéder à un processus actif et de modifier son contenu grace aux APIs ReadProcessMemory et WriteProcessMemory.
Have Fun
lilxam

Source / Exemple :


#include <iostream>
#include <windows.h>

#pragma comment(lib, "ws2_32.lib")
using namespace std;

int main()
{
    cout<<"\nReadProcessMemory\n\n\n";
    
    STARTUPINFO StartupInfo; //Structure STARTUPINFO
    memset(&StartupInfo, 0, sizeof(StartupInfo)); //On complète StartupInfo de 0
    
    PROCESS_INFORMATION ProcessInfo; //Structure PROCESS_INFORMATION
    memset(&ProcessInfo, 0, sizeof(ProcessInfo));
    
    char memread[100];
    char *cmdline;
    
    int offset = 0x400000; //On prend un offset de départ
    
    cmdline = GetCommandLine();    
    cout<<"Command Line : \n"<<cmdline<<"\n\n\n"; //Pour comprendre vous même l'utilitée de GetCommandLine()
    
    CreateProcess("programme.exe", cmdline, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo); //On démarre le processus, notre programme
    cout<<"\n\nMemory Read : \n";
    while(ReadProcessMemory(ProcessInfo.hProcess, (LPVOID) offset, memread, 1, NULL)) //On lit son conten
    {
    
        printf("%d", memread[0]);
        offset ++; //On incrémente l'offset
        if(memread[0] == 0x0) //On remplace les 0 par des 1, aucune utilitée, c'est juste pour l'exemple
        {
                      WriteProcessMemory(ProcessInfo.hProcess, (LPVOID) offset, "0x1", 1, NULL);

        }
    }
    
    CloseHandle(ProcessInfo.hProcess);
    CloseHandle(ProcessInfo.hThread);
    
    system("pause");
    return 0;
}

A voir également

Ajouter un commentaire Commentaires
dj328i
Messages postés
312
Date d'inscription
dimanche 23 février 2003
Statut
Non membre
Dernière intervention
14 mars 2022

5 nov. 2007 à 22:57
max12

pour ca il y a deja un logiciel qui existe. "TSearch"

Tu peut recherché et modifier tout valeur dans un processus en cours d'utilisation.
mat1597530406950
Messages postés
2
Date d'inscription
vendredi 30 septembre 2005
Statut
Membre
Dernière intervention
14 août 2007

14 août 2007 à 15:12
Alors pour cette source bravo, ca m'aide beaucoup ! sinon j'ai essayé avec un programme de modifié les 0 avec les 1 et avec un if, j'ais vus qu'il n'y arrive pas c'est ce que me renvoie la fonction et pour etre sur je re "read" ca ne change rien...
Merci :)
skonsoft
Messages postés
3
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
30 avril 2007

30 avril 2007 à 17:24
salut y a t il quelqu'1 qui peut m'aider à realiser mon mini projet: Serveur FTP
cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

18 avril 2007 à 08:55
Sa peut être pratique pour cheater dans les jeux :P
nickydaquick
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
3
15 avril 2007 à 19:34
Salut
wsock32 Winsock
ws2_32 Winsock 2
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.