OldSchoolHack

Registrieren / Anmelden Deutsch

C++ Memory


icon C++ Memory #1

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
Hallo, ich versuche einen Wert in einem Spiel zu ändern.
Mit CE funktioniert dass auch ohne Probleme.

CE Screen:
http://puu.sh/92fp9.png

Mein Code:
TEXT Code:
  1. int Money = 1337;
  2. int v1, v2, v3;
  3. DWORD pID = GetPidFromName("spiel.exe");
  4. DWORD base = GetModuleBase("spiel.exe", pID);
  5. HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
  6. ReadProcessMemory(hProcess, (LPCVOID)(base + 0x00811768), &v1, sizeof(v1), NULL);
  7. ReadProcessMemory(hProcess, (LPCVOID)(base + 0x28), &v2, sizeof(v2), NULL);
  8. ReadProcessMemory(hProcess, (LPCVOID)(base + 0x2C), &v3, sizeof(v3), NULL);
  9. WriteProcessMemory(hProcess, (LPCVOID*)v1 + v2 + v3, &Money, 4, NULL);


Problem:
Der Wert "das Geld" wird nicht gesetzt.

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;
Zuletzt geändert von KN4CK3R (Mi 28. Mai 2014, 03:00)

Grund: kein Grund angegeben

icon #2

Anmeldungsdatum: Aug 2007

Beiträge: 8646

Benutzer-Bewertung:

199 positiv
33 negativ
du willst sehr sicher nicht

base + 0x28

auslesen

__________________

Hallo
icon #3

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
Wenn ich es so auslese, passiert auch nichts:
TEXT Code:
  1. ReadProcessMemory(hProcess, (LPCVOID)(base + 0x00811768), &v1, sizeof(v1), NULL);
  2. ReadProcessMemory(hProcess, (LPCVOID)(v1 + 0x28), &v2, sizeof(v2), NULL);
  3. ReadProcessMemory(hProcess, (LPCVOID)(v2 + 0x2C), &v3, sizeof(v3), NULL);
  4. WriteProcessMemory(hProcess, (LPCVOID*)v1 + v2 + v3, &Money, 4, NULL);

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;
icon #4

Anmeldungsdatum: Aug 2007

Beiträge: 8646

Benutzer-Bewertung:

199 positiv
33 negativ
wenn ich den Screenshot richtig interpretiere, musst du erst 0x2C und dann 0x28 berechnen oder?
außerdem willst du sicherlich nur an die v3 Adresse schreiben und nicht an v1 + v2 + v3

__________________

Hallo
Zuletzt geändert von KN4CK3R (Mi 28. Mai 2014, 03:02)

Grund: kein Grund angegeben

icon #5

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
Zitat von KN4CK3R
wenn ich den Screenshot richtig interpretiere, musst du erst 0x2C und dann 0x28 berechnen oder?
Ja, stimmt. Flüchtigkeitsfehler....
Dennoch wird der Wert nicht gesetzt. In CE funktioniert es einwandfrei.
/e: Aktueller Code - Wert wird nicht gesetzt
TEXT Code:
  1. int Money = 1337;
  2. int v1, v2, v3;
  3. DWORD pID = GetPidFromName("spiel.exe");
  4. DWORD base = GetModuleBase("spiel.exe", pID);
  5. HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
  6. ReadProcessMemory(hProcess, (LPCVOID)(base + 0x00811768), &v1, sizeof(v1), NULL);
  7. ReadProcessMemory(hProcess, (LPCVOID)(v1 + 0x2C), &v2, sizeof(v2), NULL);
  8. ReadProcessMemory(hProcess, (LPCVOID)(v2 + 0x28), &v3, sizeof(v3), NULL);
  9. WriteProcessMemory(hProcess, (LPCVOID*)v3, &Money, 4, NULL);

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;
Zuletzt geändert von KingBurger (Mi 28. Mai 2014, 03:09)

Grund: kein Grund angegeben

icon #6

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
letzte rpm weglassen und stattdessen v3 = v2 + 0x28;

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #7

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
Zitat von SilverFire
letzte rpm weglassen und stattdessen v3 = v2 + 0x28;
Funktioniert leider auch nicht. Ich sitze auch schon länger dran, aber irgendwie will das nicht so wircklich.

TEXT Code:
  1. ReadProcessMemory(hProcess, (LPCVOID)(base + 0x00811768), &v1, sizeof(v1), NULL);
  2. ReadProcessMemory(hProcess, (LPCVOID)(v1 + 0x2C), &v2, sizeof(v2), NULL);
  3. WriteProcessMemory(hProcess, (LPCVOID*)v2 + 0x28, &Money, 4, NULL);

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;
Zuletzt geändert von KingBurger (Mi 28. Mai 2014, 03:18)

Grund: kein Grund angegeben

icon #8

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
tu einfach das was ich sage.
alternativ das v2 + 0x28 klammern.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
Zuletzt geändert von SilverFire (Mi 28. Mai 2014, 03:20)

Grund: kein Grund angegeben

1 positiv
0 negativ
Dieser Beitrag wurde bewertet von:
KingBurger (Mi 28. Mai 2014, 03:38)
icon #9

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
Zitat von SilverFire
tu einfach das was ich sage.
alternativ das v2 + 0x28 klammern.
Tue ich ja, dennoch funktioniert es nicht, auch nicht so.
TEXT Code:
  1. WriteProcessMemory(hProcess, (LPCVOID*)(v2 + 0x28), &Money, 4, NULL);

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;
icon #10

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
dann lass dir mal
DWORD base = GetModuleBase("spiel.exe", pID);
ausgeben was er da für base rausgibt, oder poste mal die getmodulebase func die du benutzst.
ansonsten auch noch alle zwischenschritte ausgeben lassen und gucken wo was schiefläuft.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #11

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
TEXT Code:
  1. DWORD GetModuleBase(LPSTR lpModuleName, DWORD dwProcessId)
  2. {
  3. MODULEENTRY32 lpModuleEntry = { 0 };
  4. HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
  5. if (!hSnapShot)
  6. return NULL;
  7. lpModuleEntry.dwSize = sizeof(lpModuleEntry);
  8. BOOL bModule = Module32First(hSnapShot, &lpModuleEntry);
  9. while (bModule)
  10. {
  11. bModule = Module32Next(hSnapShot, &lpModuleEntry);
  12. }
  13. CloseHandle(hSnapShot);
  14. return NULL;
  15. }

Ausgaben:

Meins:
pID: 7452 Base: (null)
CE:
pID: 7452 Base: 00905A4D

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;
Zuletzt geändert von KingBurger (Mi 28. Mai 2014, 03:33)

Grund: kein Grund angegeben

icon #12

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
woher hast du denn diese fail methode her?
wie wärs in der schleife die entrys auch mit dem übergebenen modulenamen zu vergleichen?

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #13

Anmeldungsdatum: Mär 2011

Beiträge: 29

Benutzer-Bewertung:

1 positiv
0 negativ
Funktioniert jetzt. Wo ich es her habe? Stande irgendwo im russichen Forum.
Vielen Dank für eure Hilfe!

Lösung:
dwGetModuleBaseAddress
TEXT Code:
  1. DWORD_PTR dwGetModuleBaseAddress(DWORD dwProcessIdentifier, TCHAR *szModuleName)
  2. {
  3. DWORD_PTR dwModuleBaseAddress = 0;
  4. HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, dwProcessIdentifier);
  5. if (hSnapshot != INVALID_HANDLE_VALUE)
  6. {
  7. MODULEENTRY32 ModuleEntry32;
  8. ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
  9. if (Module32First(hSnapshot, &ModuleEntry32))
  10. {
  11. do
  12. {
  13. if (_tcsicmp(ModuleEntry32.szModule, szModuleName) == 0)
  14. {
  15. dwModuleBaseAddress = (DWORD_PTR)ModuleEntry32.modBaseAddr;
  16. break;
  17. }
  18. } while (Module32Next(hSnapshot, &ModuleEntry32));
  19. }
  20. CloseHandle(hSnapshot);
  21. }
  22. return dwModuleBaseAddress;
  23. }

__________________

TEXT Code:
  1. cout << "Veröffentliche Hacks: Unbekannt" << endl;