Buenas, es este código correcto?
Quiero imitar esto: http://i.stack.imgur.com/jQMds.png
Con este código:
Mi intención es editar un programa con este pointer: "WindowName.exe" + 009B03D0 + A7
Pero no me edita el address que quiero... y por lo que veo ptrAddress no se parece mucho a lo que muestra CheatEngine
Gracias
Quiero imitar esto: http://i.stack.imgur.com/jQMds.png
Con este código:
- Code:
#include <windows.h>
#include <iostream>
void main() {
HWND hWnd = FindWindow(0, TEXT("WindowName") );
if (hWnd == 0) {
std::cerr << "Cannot find window." << std::endl;
}
else {
DWORD pId;
GetWindowThreadProcessId(hWnd, &pId);
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
if (hProc) {
char *newString = "newvalue";
size_t sz = strlen(newString) + 1;
LPVOID baseAddress = (LPVOID)0x009B03D0;
DWORD offset = 0xA7;
LPVOID ptrAddress = new char[sz];
SIZE_T bytes_read = 0, bytes_written=0;
if (ReadProcessMemory(hProc, baseAddress, ptrAddress, sz, &bytes_read) || GetLastError()== ERROR_PARTIAL_COPY) {
if (bytes_read == 0)
std::cerr << "Houston, we have a problem..." << std::endl;
if(!WriteProcessMemory(hProc, baseAddress, (LPCVOID)newString, sz, &bytes_written))
std::cerr << "Couldn't write process memory:" << GetLastError() << std::endl;
std::cout << "Done. " << bytes_read <<" bytes read and "<<bytes_written<<" bytes written"<< std::endl;
}
else {
std::cerr<< "Couldn't read process memory:" << GetLastError() << std::endl;
}
delete[] ptrAddress;
}
else {
std::cerr << "Couldn't open process " << pId << ": " << GetLastError() << std::endl;
}
}
std::getchar();
}
Mi intención es editar un programa con este pointer: "WindowName.exe" + 009B03D0 + A7
Pero no me edita el address que quiero... y por lo que veo ptrAddress no se parece mucho a lo que muestra CheatEngine
Gracias