Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 10:16

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Read/WriteProcess Memory

Discussion on Read/WriteProcess Memory within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
[uLow]NTX?!'s Avatar
 
elite*gold: 0
Join Date: May 2013
Posts: 1,266
Received Thanks: 627
Read/WriteProcess Memory

Guten tag, ich möchte bei einem spiel Via Read/writeprocessmemory dei value einer Addresse auf 1 bzw 0 abändern

Ich habe dazu auch die Pointer, jedoch will es nicht funktionieren und ich weiß nicht warum.

ich habe es auch schon mit VirtualprotectEx probiert.

Code:
PHP Code:
void Wallhack(bool enable){
    
DWORD dw;
    
DWORD addy1;
    
DWORD addy2;
    
DWORD addy3;
    
DWORD a 0;
    if(
enable){ 1; }
    
ReadProcessMemory(GetCurrentProcess(),(void*)0x7E3E20,(void*)addy1,4,&dw);
    
ReadProcessMemory(GetCurrentProcess(),(void*)(addy1+0x8),(void*)addy2,4,&dw);
    
ReadProcessMemory(GetCurrentProcess(),(void*)(addy2+0x680),(void*)addy3,4,&dw);
    
ReadProcessMemory(GetCurrentProcess(),(void*)addy3,(void*)addy3,4,&dw);
    
WriteProcessMemory(GetCurrentProcess(),(void*)addy3,(void*)a,4,&dw);

Ich wäre sehr über Hilfe erfreut!

Mfg

NTX
[uLow]NTX?! is offline  
Old 06/28/2013, 19:32   #2
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Quote:
Originally Posted by NTX?! View Post
jedoch will es nicht funktionieren und ich weiß nicht warum.
Das wissen wir auch nicht. Könntest du deinen Fehler bitte *etwas* weiter ausholend beschreiben, als nur "geht nicht"

€:
Probier mal statt (void*)(addy1 + 0x08) einfach (void*)((*(DWORD*)addy1) + 0x08) aus

Padmak
Padmak is offline  
Old 06/28/2013, 19:40   #3

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
1) Ist es Absicht, dass du GetCurrentProcess() nutzt? Hast du eine Dll oder eine Konsolenanwendung?
2) Dein Code mit dem ReadProcessMemory ist doch recht unübersichtlich, evtl. kannst du das ja mal in Assembly-Notation oder so aufschreiben, dann fallen einem meistens die Fehler eher auf.
3) Deine Adresse ist sicher gültig? Ist sie evtl. ein Offset, das du auf die BaseAddress aufrechnen musst?
4) Okay, VirtualProtectEx spricht für "von außen" modden. Joa, da brauchst du ein Handle zum Prozess. :/

Quote:
Probier mal statt (void*)(addy1 + 0x08) einfach (void*)((*(DWORD*)addy1) + 0x08) aus
Da schmiert ihm im schlimmsten Falle das Programm ab, da wir hier mit den vielen Infos auch nicht sagen können, ob er jetzt in der Zielanwendung ist oder nicht. :/
snow is offline  
Old 06/28/2013, 19:43   #4
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Wo du auch wieder Recht hast. Auf das GetCurrentProcess() hab ich gar nicht geachtet, ich dachte der wird schon wissen was er da tut
Bitte einfach mal sagen ob du eine DLL nutzt oder nicht, falls dem so wäre könntest du auch einfach memcpy nehmen

Padmak
Padmak is offline  
Old 06/28/2013, 19:58   #5
 
[uLow]NTX?!'s Avatar
 
elite*gold: 0
Join Date: May 2013
Posts: 1,266
Received Thanks: 627
Quote:
Originally Posted by snow911 View Post
1) Ist es Absicht, dass du GetCurrentProcess() nutzt? Hast du eine Dll oder eine Konsolenanwendung?
2) Dein Code mit dem ReadProcessMemory ist doch recht unübersichtlich, evtl. kannst du das ja mal in Assembly-Notation oder so aufschreiben, dann fallen einem meistens die Fehler eher auf.
3) Deine Adresse ist sicher gültig? Ist sie evtl. ein Offset, das du auf die BaseAddress aufrechnen musst?
4) Okay, VirtualProtectEx spricht für "von außen" modden. Joa, da brauchst du ein Handle zum Prozess. :/



Da schmiert ihm im schlimmsten Falle das Programm ab, da wir hier mit den vielen Infos auch nicht sagen können, ob er jetzt in der Zielanwendung ist oder nicht. :/
Zu 1) ja ist ein DLL, ist also absichtlich so.
Zu 2) Assembly-Notation ? Sorry höre ich das erste mal
Zu 3) Ja sie ist Gültig in CheatEngine Klappt alles Wunderbar
Zu 4) Ich weiß, nur war des "mein letzter" versuch

In übrigen versuche ich einen Wallhack auf Shrio2 (metin2 ) umzusetzen. Klappt in Ce auch wunderbar, nur an der Umsetzung in Code scheitert es.


€: Der obige "code"-Ausschnitt ging auch nicht.

Wenn niemand weiter einen Lösungsweg weiß, werde ichs einfach in ASM machen.
[uLow]NTX?! is offline  
Old 06/28/2013, 20:18   #6
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Probier es mal so:
Code:
void Wallhack(bool enable)
{ 
    DWORD addy1; 
    DWORD addy2; 
    DWORD addy3; 
	
    addy1 = *(DWORD*)0x7E3E20;
    addy2 = *(DWORD*)addy1 + 0x08;
    addy3 = *(DWORD*)addy2 + 0x680;
    *(DWORD*)addy3 = (DWORD)enable;
}
Ich hab in Metin noch nie Wallhacks gemacht, ob es so stimmt kann ich also nicht sagen (ist btw Browsergeschrieben & ungetestet)

Padmak
Padmak is offline  
Old 06/28/2013, 20:19   #7
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
im eigenen prozess rpm und wpm, bei euch hakts aber noch, oder?
Code:
void Wallhack(bool enable)
{
	*(**(DWORD***)((*(DWORD*)((*(DWORD*)0x7E3E20) + 0x8)) + 0x680)) = enable ? 1 : 0;
}
der fehler ist btw. dass du in rpm nix in einen buffer ausgibst, sondern den INHALT der variablen als void* castest (nein, ich weiß auch net wieso das noch keinem vorher aufgefallen ist....).
Dr. Coxxy is offline  
Thanks
3 Users
Old 06/28/2013, 20:44   #8
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Bei uns? Der einzige der es so machen wollte, war er selbst.
Den Code am Anfang hat sich glaub ich keiner so richtig angesehen, weil er offensichtlich falsch ist. Außerdem ist doch dein Code im Prinzip exakt der gleiche wie meiner, oder nicht?

Padmak
Padmak is offline  
Old 06/28/2013, 20:57   #9
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by Padmak View Post
Bei uns? Der einzige der es so machen wollte, war er selbst.
jö, war vllt nen bissle blöd ausgedrückt, aber ihr habt ihn auch net wirklich direkt korrigiert

Quote:
Den Code am Anfang hat sich glaub ich keiner so richtig angesehen, weil er offensichtlich falsch ist.
nö, falsch ist der nicht unbedingt, sollte auch theoretisch funzen wenn ers mitm buffer fixt.

Quote:
Außerdem ist doch dein Code im Prinzip exakt der gleiche wie meiner, oder nicht?
nein, du hast einmal dereferenzieren vergessen, oder op hats 1x zuviel gemacht, bin mir da nicht so sicher, ob er weiß, was er da eigtl tut. (außerdem war dein post noch net da, als ich auf antworten geklickt habe, sonst hätte ichs korrigiert).

@Topic:
Ein screenshot von dem CE pointer wäre nett, dann könnten wir dir korrekten code geben, ansonsten einfach mal meinen code ausprobieren, wenn der nicht funzt, dann einmal
Code:
*(*(DWORD**)((*(DWORD*)((*(DWORD*)0x7E3E20) + 0x8)) + 0x680)) = enable ? 1 : 0;
Dr. Coxxy is offline  
Old 06/28/2013, 21:01   #10
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Ich hab eigentlich nur seinen Code "umgeschrieben", in Ermangelung eines CE-Screenshottes bzw. eigener Erfahrungen mit Wallhacks in Metin konnte ich ihn nicht weiter korrigieren.
Außerdem stünde dem TE immer noch Debugging als Unterstützung zur Seite, davon könnte er auch Gebrauch machen, um zu identifizieren bis zu welchem Level was funktioniert etc.

Padmak
Padmak is offline  
Old 06/28/2013, 21:09   #11
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by Padmak View Post
Ich hab eigentlich nur seinen Code "umgeschrieben",
wenn mein hirn von dem pointermist nicht schon vollkommen verkocht ist (was gut sein kann), hast du die zeile
Code:
ReadProcessMemory(GetCurrentProcess(),(void*)addy3,(void*)addy3,4,&dw);
vergessen.
Dr. Coxxy is offline  
Old 06/28/2013, 21:13   #12
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Ähm.. kann natürlich sein, dass ich mich vertu, aber ist das nicht "*(DWORD*)addy3"?
Kann natürlich absolut sein, dass das falsch ist.. so sonderlich gut kann ich das au nich

Padmak
Padmak is offline  
Old 06/28/2013, 21:23   #13
 
[uLow]NTX?!'s Avatar
 
elite*gold: 0
Join Date: May 2013
Posts: 1,266
Received Thanks: 627
nagut soweit hat bisher nix geklappt :/ ich werde des dann über ASM lösen..

Damals wo ich mit C# gearbeitet habe möchte ich ASM nie, jeze mag ich des Pointer gedönse nicht xd
[uLow]NTX?! is offline  
Old 06/28/2013, 21:27   #14
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by NTX?! View Post
nagut soweit hat bisher nix geklappt :/ ich werde des dann über ASM lösen..

Damals wo ich mit C# gearbeitet habe möchte ich ASM nie, jeze mag ich des Pointer gedönse nicht xd
poste einfach einmal nen screenshot vom CE pointer, dann können wir dir auch helfen...
Dr. Coxxy is offline  
Old 06/28/2013, 21:35   #15
 
[uLow]NTX?!'s Avatar
 
elite*gold: 0
Join Date: May 2013
Posts: 1,266
Received Thanks: 627
[uLow]NTX?! is offline  
Reply


Similar Threads Similar Threads
[VB]Write Memory bzw Read Memory
06/26/2010 - .NET Languages - 8 Replies
Hi Ich hab das TuT von *Guidman* benütz um einen hack zu machen. So aber nun hab ihc ein paar fragen könnte man memory teil kürzer machen und am besten wie kann man das selber machen weil ich will nihct immer C&P machen. Und zu Read Memory kann man das auch machen das ein Label immer die Bestimmte Ahnzahl angiebt von dem Pointer?.(Wenn das Read Memory ist ?) Bitte helf mir Danke
Memory read and add value
06/20/2010 - AutoIt - 4 Replies
Im trying to read values with HexCode but i have no ide to do this. i want the porgress bar and the labels to show the curent value of the Adresses #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3>
Memory Read
06/18/2010 - AutoIt - 8 Replies
Hey E*PvP, ich hab ein Problem... Ich denke das die memory richtig ist , aber er gibt mir immer nur 0 aus.... Egal ob ich 0, 1, 1000 oder 9million punkte hab ... #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <nomadmemory.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Sol loger", 201, 64, 324, 280)
Memory Read
06/18/2010 - AutoIt - 0 Replies
wtf?? pls delete
[Question] WriteProcess Memory with Offsets
06/13/2010 - CO2 Programming - 3 Replies
The base address is 0x0045cc20 and the following offset is 0xEC found by cheat engine. My code without offset public void Write(int val) { byte bytes = new byte; bytes = (byte)val;



All times are GMT +2. The time now is 10:16.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.