Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 07:38

  • 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 06/28/2013, 21:38   #16
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Mein Vorschlag zur Lösung:
Code:
DWORD* addr = (DWORD*)(*(DWORD*)((*(DWORD*)0x7E3E20) + 0x08) + 0x680);
*addr = 0;
*addr = 1;
Probier's einfach mal aus :P

Padmak
Padmak is offline  
Old 07/08/2013, 08:44   #17
 
EXTEЯNAL's Avatar
 
elite*gold: 105
Join Date: Jul 2007
Posts: 737
Received Thanks: 114
Man könnte hier auch mit Templates arbeiten.

PHP Code:
template <typename T>
T ReadMemory(unsigned int Address)
{
    
T Value;
    
memset(&Value0sizeof(T));
    
DWORD dwOldProtection 0;
    if(
VirtualProtect((void*)Addresssizeof(Value), VPANTICP_RW, &dwOldProtection))
    {
        
memcpy(&Value, (void*)Addresssizeof(Value));
        
VirtualProtect((void*)Addresssizeof(Value), dwOldProtectionNULL);
    }
    return 
Value;

PHP Code:
unsigned int Address ReadMemory<unsigned int>(0xFFFFFFFF)
float fHP ReadMemory<float>(0xEFEFEFEF
Quote:
Originally Posted by Dr. Coxxy View Post
im eigenen prozess rpm und wpm, bei euch hakts aber noch, oder?
Könntest du mir evtl. erklären warum? Ich meine mal gehört zu haben, dass ein WPM Aufruf in einer DLL mit GetCurrentProcess() sogar vorteile hätte, Google sagt leider nichts brauchbares, arbeite selber mit VP und memcpy intern.


Quote:
Originally Posted by Padmak View Post
Mein Vorschlag zur Lösung:
Code:
DWORD* addr = (DWORD*)(*(DWORD*)((*(DWORD*)0x7E3E20) + 0x08) + 0x680);
*addr = 0;
*addr = 1;
Probier's einfach mal aus :P

Padmak
Kein VirtualProtect Aufruf, keine NULL Checks ... Nicht wirklich eine saubere Lösung.
EXTEЯNAL is offline  
Old 07/08/2013, 09:47   #18

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
^Ich denke mal, RPM / WPM sollte nicht im eigenen Prozess verwendet werden, da es dort erst in den Kernel geht, dort der Call für den Prozess erfolgt und das ganze wieder ins eigene Programm kommt, das dürften ein paar Schritte mehr sein als ein einfaches *address = value;
Kenne mich aber ehrlich gesagt zu wenig mit den Windows Internals aus, um da was über die unterschiedlichen Laufzeiten zu sagen.
snow is offline  
Old 07/08/2013, 13:01   #19
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Quote:
Originally Posted by Momo5000 View Post
Kein VirtualProtect Aufruf, keine NULL Checks ... Nicht wirklich eine saubere Lösung.
Ist schon klar, aber es ging mehr um die Logik^^

Padmak
Padmak is offline  
Old 07/08/2013, 14:12   #20
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by Momo5000 View Post
Man könnte hier auch mit Templates arbeiten.

Code:
 // Unnützer lahmer shice
Könntest du mir evtl. erklären warum? Ich meine mal gehört zu haben, dass ein WPM Aufruf in einer DLL mit GetCurrentProcess() sogar vorteile hätte, Google sagt leider nichts brauchbares, arbeite selber mit VP und memcpy intern.
wüsste keinen vorteil.
Pointer sind halt deutlich schneller (wie snow schon richtig erklärt hat), außerdem muss nicht das ganze eventuell ziemlich große objekt in lokalen speicher kopiert werden.

Quote:
Kein VirtualProtect Aufruf, keine NULL Checks ... Nicht wirklich eine saubere Lösung.
virtualprotect ist normalerweise nicht nötig, da die pointer über die das spiel auch auf seine objekte zugreift diese normalerweise nicht readprotected (warum sollte man so nen schwachsinn auch machen?).
NULL pointer überprüfung ist auch nicht immer nötig - generell gilt, wenn das spiel nicht auf nullpointer prüft, musst du es auch nicht - kann allerdings bei mehreren threads/verschiedenen timings probleme verursachen, weswegen man es immer tun sollte, wenn man nicht sicherstellen kann, dass der pointer immer gültig ist.

EDIT:
übrigens ist dein code sogar grob falsch, da er offensichtlich ungültige pointer per virtualprotect gültig macht, was wohl kaum das richtige verhalten ist.
Dr. Coxxy 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 +1. The time now is 07:39.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.