|
You last visited: Today at 07:17
Advertisement
[Question] WriteProcessMemory With Pointer & Offset !?
Discussion on [Question] WriteProcessMemory With Pointer & Offset !? within the C/C++ forum part of the Coders Den category.
02/19/2012, 17:37
|
#1
|
elite*gold: 15
Join Date: Nov 2011
Posts: 556
Received Thanks: 1,002
|
[Question] WriteProcessMemory With Pointer & Offset !?
Wie schreibe ich mit WriteProcessMemory zu einen Offset mit Pointer ?!
|
|
|
02/19/2012, 17:46
|
#2
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
|
|
|
02/19/2012, 17:48
|
#3
|
elite*gold: 15
Join Date: Nov 2011
Posts: 556
Received Thanks: 1,002
|
Ahja, wie mach ich jetzt damit ein Offset mit Pointer ?
|
|
|
02/19/2012, 18:20
|
#4
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Quote:
Originally Posted by xBioK1ngz
Ahja, wie mach ich jetzt damit ein Offset mit Pointer ?
|
Huh? Könntest du dich bitte ein wenig genauer ausdrücken? Unter "ein Offset mit Pointer machen" kann ich mir leider nichts vorstellen.
Edit:
Aber ich glaube du meinst das hier:
Code:
UINT_PTR ptr = 0xDEADBEEF;
UINT_PTR offset = 0xBOOB5
int value = 0;
SIZE_T numWritten = 0;
WriteProcessMemory(process, reinterpret_cast<LPVOID>(ptr + offset), reinterpret_cast<LPCVOID>(value), sizeof(value), &numWritten);
|
|
|
02/19/2012, 18:23
|
#5
|
elite*gold: 15
Join Date: Nov 2011
Posts: 556
Received Thanks: 1,002
|
INT iValue = 999;
DWORD dwAmmoPtr = *(DWORD*)0x91A814;
DWORD dwAmmoOfs = *(DWORD*)(dwAmmoPtr+0xFFF12);
WriteProcessMemory(hProcessHandler,(LPVOID)dwAmmoO fs,&iValue,sizeof(iValue),0);
Habe in Cheat Engine eine Addresse gefunden, die den Pointer "0x91A814" hat und das Offset "0xFFF12".
Jetzt möchte ich es mit "WriteProcessMemory" auf INT "999" schreiben, aber es funktioniert nicht.
|
|
|
02/19/2012, 18:29
|
#6
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
So schreibst du die Adresse von iValue in den Speicher. Du musst nach LPCVOID casten.
Außerdem solltest du Adressen nicht in int speichern, sondern in UINT_PTR. Der Typ garantiert dir immer groß genug zu sein, um einen Pointer beinhalten zu können.
Und du solltest C++-Casts nutzen, die sind sicherer als C-Casts.
Edit:
Nein, warte. Vergiss den ersten Satz. Ich schau nochmal nach dem Bearbeiten...
|
|
|
02/19/2012, 18:34
|
#7
|
elite*gold: 15
Join Date: Nov 2011
Posts: 556
Received Thanks: 1,002
|
Wie funktioniert das jetzt genau ??
|
|
|
02/19/2012, 18:41
|
#8
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Okay, da du die Pointer direkt dereferenzierst scheinst du wohl im fremden Prozess zu arbeiten. Dann brauchst du WriteProcessMemory gar nicht.
Code:
UINT_PTR* ammoPtr = reinterpret_cast<UINT_PTR*>(*reinterpret_cast<UINT_PTR*>(0x91A814));
UINT_PTR* ammoOfs = (ammoPtr + 0xFFF12);
*ammoOfs = 999;
Ich denke so haut das hin.
|
|
|
02/19/2012, 18:47
|
#9
|
elite*gold: 15
Join Date: Nov 2011
Posts: 556
Received Thanks: 1,002
|
Ich mache keine DLL Injektion, ich muss es über WriteProcessMemory machen ..
|
|
|
02/19/2012, 18:51
|
#10
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Dann kannst du die Pointer nicht direkt dereferenzieren, sondern musst deren Werte vorher über ReadProcessMemory auslesen.
|
|
|
02/19/2012, 18:55
|
#11
|
elite*gold: 15
Join Date: Nov 2011
Posts: 556
Received Thanks: 1,002
|
Wie geht das ?
|
|
|
02/19/2012, 19:00
|
#12
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Ach komm schon, ein wenig Eigeninitiative wäre schon angebracht.
Code:
TYPE buffer = 0;
UINT_PTR address = 0xDEADBEEF;
SIZE_T numRead = 0;
ReadProcessMemory(process, reinterpret_cast<LPCVOID>(address), &buffer, sizeof(buffer), &numRead);
Mehr spoonfeeding gibt es aber nicht von meiner Seite. :/
|
|
|
02/19/2012, 19:22
|
#13
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Quote:
Mehr spoonfeeding gibt es aber nicht von meiner Seite. :/
|
Und auch nicht von uns.
#closed
|
|
|
|
Similar Threads
|
[AutoIT->Delphi] Pointer + Offset auslesen !
02/05/2011 - Nostale - 4 Replies
Hi,
ich habe folgendes AutoIT Script und bekomme es einfach nicht für Delphi umgeschrieben. Mit Memory Read/Write in Delphi habe ich leider keinerlei Erfahrung, deshalb bitte ich euch um eine funktionierende Funktion. AutoIT ist zwar recht easy aber spackt mal wieder rum, NosTale stürzt grundlos ab. :D
Folgender Code:
#include <Pointer.au3>
#RequireAdmin
$open = _MemoryOpen(ProcessExists("NostaleX.dat" ))
Global $base = 0x0020AC93
|
[VB] Pointer+Offset Einbinden
12/02/2010 - .NET Languages - 19 Replies
Guten Tag Alle Zusammen !
Folgendes Problem :
Wie Baue ich diesen Pointer von CheatEngine in Mein Visual Basic EIn!
http://s10.directupload.net/images/101130/t4fp524 r.png
Hier Code von VB da IST KEI POINTER DA IST EINFACH DIE NORMALER ADRESSE ABER WIE BAUE Ich den POINTER und offset ein ?
|
help with pointer+offset
11/28/2010 - Last Chaos - 0 Replies
this is my code in c++
__inline ULONG_PTR ReadPointer(ULONG_PTR* ulBase, INT nOffset)
{
if (!IsBadReadPtr((VOID*)ulBase, sizeof(ULONG_PTR)))
{
if (!IsBadReadPtr((VOID*)((*(ULONG_PTR*)ulBase)+nOffs et), sizeof(ULONG_PTR)))
{
return *(ULONG_PTR*)((*(ULONG_PTR*)ulBase)+nOffset);
}
|
Pointer offset suche... help plz
07/09/2009 - AutoIt - 4 Replies
hallo, screeni im Anhang. Finde keinen Pointer und Offset. Leben Energie usw hab ich schnell in Warhammer gefunden.
Habe eine Adresse gefunden die 1 ist wenn ich einen Gegner angeklickt habe und die 0 ist wenn ich keinen Gegner angeklickt habe. Die will ich gern verwenden. Die scheint aber jedenmal dynamisch zu sein.
vielleicht kann ja wer helfen. Danke cya
PicFront - Ihr innovativer Bildhoster
|
[Request]how found pointer offset
12/22/2008 - CO2 Programming - 2 Replies
how found pointer and offset?
|
All times are GMT +1. The time now is 07:17.
|
|