Hallo StageTwo!
Bin gerade dabei einen Teleport Hack für ein Spiel zu schreiben.
Dazu muss ich den Speicher modifizieren. Das tue ich mit WriteProcessMemory.
Hier ist der Code:
C
- // DCRTele.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
- //
- #include "stdafx.h"
- #include <windows.h>
- #include <iostream>
- using namespace std;
- int _tmain(int argc, _TCHAR* argv[])
- {
- HWND hwnd;
- HANDLE pHandle;
- DWORD PID;
- hwnd = FindWindow("D3D Window","Dark Core Revolution");
- int newValue = 8000;
- if (hwnd != 0)
- {
- GetWindowThreadProcessId(hwnd, &PID);
- cout << "HWND: " << hwnd;
- cout << "\nPID: " << PID;
- pHandle = OpenProcess(0xFFF, NULL, PID);
- }
- else
- {
- cout << "Could not find the window.";
- cin.get();
- return 0;
- }
- if (pHandle != 0) {
- BYTE newData[] = {newValue};
- DWORD newDataSize = sizeof(newData);
- bool Return = WriteProcessMemory(pHandle,(LPVOID)0x2993CB0,&newData,newDataSize,0);
- cout << "\nMemory wrote successfully.";
- cin.get();
- CloseHandle(pHandle);
- } else {
- cout << "\nCouldn't get a handle";
- cin.get();
- }
- return 0;
- }
Problem ist, dass sich nichts tut.
Sprich: Er ändert den Wert nicht, weshalb der Charakter auch nicht teleportiert wird.
Die Adresse habe ich CheatEngine entnommen.
Sie ist auch bei jedem Neustart gleich.
hwnd, PID und pHandle sind nicht NULL.
Kuh :>
PS: Wenn ich den Wert in CheatEngine änder, dann geht das teleportieren.