WriteMemory / WriteString / ReadMemory / ReadString

MsKx

Membre
Inscription
28 Janvier 2015
Messages
139
Réactions
93
Points
3 716
Salut les membres de :RG: ! :)
Aujourd'hui je vous partage les fonctions WriteMemory / WriteString / ReadMemory / ReadString utilisable en C++.
Le code a été écrit sous Qt.

Bon développement! :D
Code:
#include <windows.h>[/COLOR][/FONT]
[COLOR=#ffffff][FONT=PT Sans Caption]#include <qdebug.h>

/* ++[ AttachProcess ]++
/*
/* Permet d'attacher le processus à son outil */

HWND hwnd = FindWindow(0, L"window_title") // Nom de la fenêtre du programme
if (hwnd == 0)
{
  qDebug() << "Programme non trouvé"
}
else
{
  qDebug() << "Programme trouvé";
  DWORD pId;
  GetWindowThreadProcessId(hwnd, &pId);
  HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
  if (!hProc)
  {
    qDebug() << "Impossible d'attacher le processus du programme";
  }
  else
  {
    qDebug() << "Le processus est attaché";
  }
}

/* ++[ WriteMemory ]++
/*
/* Permet d'écrire une valeur dans la mémoire du programme */

int size = 10;
WriteProcessMemory(hProc, (LPVOID) 0x0000000, &size, (DWORD)sizeof(size), NULL);


/* ++[ ReadMemory ]++
/*
/* Permet de récupérer une valeur à une adresse */

int readValue = 0;
ReadProcessMemory(hProc, (void*) 0x0000000, &readValue, sizeof(readValue), NULL);


/* ++[ WriteString ]++
/*
/* Permet d'écrire une valeur string (texte) dans la mémoire du programme */

std::string Text;
WWriteProcessMemory(hProc, (void*) 0x0000000 , (char*)Text.c_str(), Text.length(), NULL);


/* ++[ ReadString ]++
/*
/* Permet de récupérer une valeur string (texte) à une adresse */

char readText[16];
ReadProcessMemory(hProc, (void*) 0x0000000, &readText, sizeof(readText), NULL);

Cordialement,
MsKx
 

Switch.

Codeur Web à ton service | > Python
Premium
Inscription
13 Janvier 2013
Messages
2 956
Réactions
968
Points
6 491
Ca m'a l'air sympa et intéressant ça permet de faire quoi ?
 

Shadow'

Premium
Inscription
11 Septembre 2014
Messages
3 205
Réactions
1 327
Points
14 780
Salut les membres de :RG: ! :)
Aujourd'hui je vous partage les fonctions WriteMemory / WriteString / ReadMemory / ReadString utilisable en C++.
Le code a été écrit sous Qt.

Bon développement! :D
Code:
#include <windows.h>[/COLOR][/FONT]
[COLOR=#ffffff][FONT=PT Sans Caption]#include <qdebug.h>

/* ++[ AttachProcess ]++
/*
/* Permet d'attacher le processus à son outil */

HWND hwnd = FindWindow(0, L"window_title") // Nom de la fenêtre du programme
if (hwnd == 0)
{
  qDebug() << "Programme non trouvé"
}
else
{
  qDebug() << "Programme trouvé";
  DWORD pId;
  GetWindowThreadProcessId(hwnd, &pId);
  HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
  if (!hProc)
  {
    qDebug() << "Impossible d'attacher le processus du programme";
  }
  else
  {
    qDebug() << "Le processus est attaché";
  }
}

/* ++[ WriteMemory ]++
/*
/* Permet d'écrire une valeur dans la mémoire du programme */

int size = 10;
WriteProcessMemory(hProc, (LPVOID) 0x0000000, &size, (DWORD)sizeof(size), NULL);


/* ++[ ReadMemory ]++
/*
/* Permet de récupérer une valeur à une adresse */

int readValue = 0;
ReadProcessMemory(hProc, (void*) 0x0000000, &readValue, sizeof(readValue), NULL);


/* ++[ WriteString ]++
/*
/* Permet d'écrire une valeur string (texte) dans la mémoire du programme */

std::string Text;
WWriteProcessMemory(hProc, (void*) 0x0000000 , (char*)Text.c_str(), Text.length(), NULL);


/* ++[ ReadString ]++
/*
/* Permet de récupérer une valeur string (texte) à une adresse */

char readText[16];
ReadProcessMemory(hProc, (void*) 0x0000000, &readText, sizeof(readText), NULL);

Cordialement,
MsKx
Bon Tuto :)
 

XeTechzZ

Premium
Inscription
8 Août 2013
Messages
1 792
Réactions
1 026
Points
16 231
si tu veux lire/écrire à l'adresse d'un programme, tu peux utiliser la fonction memcpy en C++
Sinon, tu as la notation suivante :
*(DWORD*)Adresse = valeur;
int valeur = *(DWORD*)Adresse;
 
Haut