Speicheradressen Value ändern
-
Hallo, ich habe gestern einen Gamecheat für Left For Dead gecodet ( unendlich Leben, Munition ).
Das hat auch super geklappt. Ich bin 14, also wundert euch bitte nicht, warum ich Videospiele spiele.
Ich habe das ganze für GTA heute gecodet. Wenn ich die Speicheradressen manuell ändere, funktioniert das ganze Perfekt. Wenn ich es aber über C++ ändere, dann funktioniert es nicht.
Was habe ich falsch gemacht? Die Speicheradressen sind alle korrekt (sind nur für das Wanted-Lvel).#include <iostream> #include <windows.h> void credits() { std::cout << "------------------------------------------------------------------------------------------------------------------------"; std::cout << "\n\n"; std::cout << "GTA V Cheat - Developed by RedException"; std::cout << "\n\n"; std::cout << "------------------------------------------------------------------------------------------------------------------------"; std::cout << "\n\n"; } int main(int argc, char** argv[]) { int wantedlvl = 0; credits(); std::cout << "searching for window..." << std::endl; HWND hwnd = FindWindowA(NULL, "Grand Theft Auto V"); Sleep(1500); if (!hwnd == NULL) { std::cout << "window found.\ninjecting..." << std::endl; Sleep(2000); DWORD procid; DWORD dw = GetWindowThreadProcessId(hwnd, &procid); HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procid); if (procid == NULL) { std::cout << "cannot optain process!" << std::endl; } else { std::cout << "injecting succesfull!\nHave fun..." << std::endl; while (true) { WriteProcessMemory(handle, (LPVOID)0x1D81B9F55F8, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8220F66C8, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D821748738, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8220F66C8, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8244B5C14, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8244B5C18, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x7FF650C26404, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x7FF65147F228, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x7FF651549D20, &wantedlvl, sizeof(wantedlvl), 0); } } } else { std::cout << "Couldn't found window."; std::cout << "Please open GTA V!\nexiting..."; Sleep(3000); exit(-1); } }
MfG
-
@Aleskej sagte in Speicheradressen Value ändern:
Wenn ich es aber über C++ ändere
Was heißt das?
obtain schreibt man mit 'b'.
Tip für bessere Lesbarkeit:
Nicht
if (everything_ok) { // loads of code // loads of code // loads of code // loads of code // loads of code // loads of code // loads of code } else { // few lines of code return; }
sondern besser
if (!everything_ok) { // few lines of code return; } // loads of code
-
@Swordfish ich meine es, wenn ich die Value von der Speicheradresse über C++ ändere. Mein Englisch ist nicht das beste ( mein Deutsch auch nicht) und darum geht es ja nicht.
-
@Aleskej sagte in Speicheradressen Value ändern:
wenn ich die Value von der Speicheradresse über C++ ändere.
Ja, das sagtest Du bereits. Aber was soll das bedeuten?? Code??
-
WriteProcessMemory(handle, (LPVOID)0x1D81B9F55F8, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8220F66C8, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D821748738, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8220F66C8, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8244B5C14, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x1D8244B5C18, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x7FF650C26404, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x7FF65147F228, &wantedlvl, sizeof(wantedlvl), 0); WriteProcessMemory(handle, (LPVOID)0x7FF651549D20, &wantedlvl, sizeof(wantedlvl), 0);
-
Was gibt
WriteProcessMemory()
zurück? WennWriteProcessMemory()
0
zurückgibt, was liefertGetLastError()
?Bzw. vorher schon. Welchen Wert hat
handle
?Process Security and Access Rights:
To open a handle to another process and obtain full access rights, you must enable the SeDebugPrivilege privilege. For more information, see Changing Privileges in a Token.