Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 03:09

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

Advertisement



Wie rechnet man Pointer und Offsets zusammen?

Discussion on Wie rechnet man Pointer und Offsets zusammen? within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2009
Posts: 51
Received Thanks: 3
Thumbs down Wie rechnet man Pointer und Offsets zusammen?

Ich weiß das diese Frage tausende male bei Google zu finden, und trotzdem bin ich seit Stunden kein Stück weiter.

Also ich versuche von dem Base-Pointer (ich glaub das nennt man so xD) durch die ganzen Offsets zu der Adresse zu kommen, die ich brauche um die Variable per ReadProcessMemory(...) auszulesen. Das habe ich so versucht:
Code:
UINT_PTR address = (((((0x27FC8C+0x18)+0xb8)+0x80)+0x90)+0x10);
(Es empfiehlt sich das Angehängte Bild anzuschauen)
Also 0x27FC8C ist mein Base-Pointer und dann hab ich die ganzen Offsets (versucht) dazu zu rechnen.
Wenn ich als address gleich die ausgerechnete Adresse (0x17653050) von CE verwende funktioniert es, also liegt es an meiner Rechnung. Kann mir jemand sagen was an der Rechnung oben falsch ist bzw. was ich überhaupt machen muss.
Attached Images
File Type: jpg epvpers.jpg (25.9 KB, 40 views)
silas2222 is offline  
Old 11/06/2014, 01:23   #2
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Ich versuch es mal zu erklären:
Du fängst mit einer statischen Adresse an zu welcher du ein Offset hinzufügst und dann als DWORD ausliest, zu dem neuen Wert fügst du wieder ein Offset hinzu und liest es wieder als DWORD aus und immer so weiter.

CE zeigt dir das ja z.B so an:
Code:
10 | 17653040+10 = 17653050
90 | [17653050+90] -> 17653040
80 | [174CC538+80] -> 17653050
B8 | [0707C1C0+B8] -> 174CC538
18 | [0027FC8C+18] -> 0707C1C0
In C könnte das so aussehen:
Code:
DWORD address_base = 0x0027FC8C;
DWORD address = 0;
ReadProcessMemory(ProcessHandle, (LPCVOID)(address_base+0x18), &address, sizeof(DWORD), 0);	//Offset 1 lesen
ReadProcessMemory(ProcessHandle, (LPCVOID)(address+0xB8), &address, sizeof(DWORD), 0);	//Offset 2 lesen
ReadProcessMemory(ProcessHandle, (LPCVOID)(address+0x80), &address, sizeof(DWORD), 0);	//Offset 3 lesen
ReadProcessMemory(ProcessHandle, (LPCVOID)(address+0x90), &address, sizeof(DWORD), 0);	//Offset 4 lesen
address += 0x10;	//Offset 4 hinzufügen
Natürlich könnte man dies auch mit einer Schleife machen.
​Tension is offline  
Thanks
2 Users
Old 11/10/2014, 22:00   #3
 
elite*gold: 0
Join Date: Dec 2009
Posts: 51
Received Thanks: 3
(Antwort etwas verspätet )
Habs jetzt hinbekommen danke
silas2222 is offline  
Old 11/11/2014, 16:31   #4
 
elite*gold: 0
Join Date: Oct 2007
Posts: 856
Received Thanks: 35
silas kannst du sagen wie du es hinbekommen hast, denn ich hab ein problem unzwar ein pointer mit 6 offsets, ich habs zwar hingebkommen aber die lösung sieht nicht sehr übersichtlich aus(das ist nicht das problem), das problem ist die dll lässt sich nicht mehr injecten, bzw, ziemlich schwer( auf einem server klappts, auf einem andern nicht) daher weiß ich das der pointer richtig ist

btw meine lösung :

DWORD Absorb = *(DWORD*)0x0070EB04;
DWORD AbsorbP = (DWORD)(Absorb + 0xD8);
DWORD AbsorbP1 = *(DWORD*)AbsorbP;
DWORD AbsorbPt = (DWORD)(AbsorbP1 + 0x250);
DWORD AbsorbPt0 = *(DWORD*)AbsorbPt;
DWORD AbsorbPt1 = (DWORD)(AbsorbPt0 + 0x4);
DWORD AbsorbPt11 = *(DWORD*)AbsorbPt1;
DWORD AbsorbPt2 = (DWORD)(AbsorbPt11 + 0x248);
DWORD AbsorbPt22 = *(DWORD*)AbsorbPt2;
DWORD AbsorbPtr = (DWORD)(AbsorbPt22 + 0x6B0);
Slade100 is offline  
Reply


Similar Threads Similar Threads
C++ Pointer mit Offsets?
05/22/2013 - C/C++ - 12 Replies
Hi. Ich habe einen Pointer gefunden mit 5 Offsets. Hier mal ein Bild: http://img4.fotos-hochladen.net/uploads/cetcm2ox7 3i5.png Mit Autoit habe ich es nicht geschafft, da die Value sich nie geändert hat. Jetzt will ich es per DLL machen. So sieht meine DLL bis jetzt aus:
Offsets/Pointer
04/14/2010 - World of Warcraft - 4 Replies
Huhu, hat wer die Offsets/Pointer für WoW 3.3.3a ? Wäre n1!
[Help] Pointer,Offsets,Etc.
05/29/2009 - Kal Online - 10 Replies
Heyjo, Aaalso... Ich hab mich vorher noch nie mit Artmoney befasst bzw. nur 1-2 mal für speedhack das wars aber auch schon. Mir geht es jetzt um den Pointer, Offsets kram. Wenn ich Pointer suchen möchte such ich erst mal die normale adresse...sagen wir jetzt von der X Coordinate in meinem Fall jetzt: 085EBDA8 jetzt mach ich nen rechtsklick drauf --> Mehr... --> Suche.. --> Pointer zu dieser Adresse suchen: 0 Ergebnisse Wenn ich Pointer ab Anfang des Speicherblocks suchen klicke, kriegt...
need help getting mob pointer and offsets
12/21/2008 - Silkroad Online - 1 Replies
well as the topic sais i wanna get the memory adresses to read mobdata like playerdata so far i found the adress for mobhp in the memory the adress changes with each mob so i've set a breakpoint in olly and got the offset 0x440 with that offset i got the pointer for that client u can c that here: http://silkroad-planet.de/Magic/mob_hp.jpg the mob was a movia(54hp) and the pointer was 0x9CE4E6C well now i'm able to get the data of that client for each mob i select...



All times are GMT +1. The time now is 03:10.


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.