OldSchoolHack

Register / Login English

C++ Memory


icon C++ Memory #1

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
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;
Last edited by KN4CK3R (Wed 28. May 2014, 03:00)

Reason: no reason given

icon #2

Join Date: Aug 2007

Posts: 8643

User-Rating:

199 positive
33 negative
du willst sehr sicher nicht

base + 0x28

auslesen

__________________

Hallo
icon #3

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
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

Join Date: Aug 2007

Posts: 8643

User-Rating:

199 positive
33 negative
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
Last edited by KN4CK3R (Wed 28. May 2014, 03:02)

Reason: no reason given

icon #5

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
Quote from 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;
Last edited by KingBurger (Wed 28. May 2014, 03:09)

Reason: no reason given

icon #6

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
letzte rpm weglassen und stattdessen v3 = v2 + 0x28;

__________________

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

Quote from 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.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from 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
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from 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)
Quote from 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

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
Quote from 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;
Last edited by KingBurger (Wed 28. May 2014, 03:18)

Reason: no reason given

icon #8

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
tu einfach das was ich sage.
alternativ das v2 + 0x28 klammern.

__________________

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

Quote from 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.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from 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
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from 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)
Quote from 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
Last edited by SilverFire (Wed 28. May 2014, 03:20)

Reason: no reason given

1 positive
0 negative
This post has been rated by:
KingBurger (Wed 28. May 2014, 03:38)
icon #9

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
Quote from 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

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
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

Quote from 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.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from 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
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from 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)
Quote from 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

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
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;
Last edited by KingBurger (Wed 28. May 2014, 03:33)

Reason: no reason given

icon #12

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
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

Quote from 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.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from 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
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from 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)
Quote from 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

Join Date: Mar 2011

Posts: 29

User-Rating:

1 positive
0 negative
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;