Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 01:42

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

Advertisement



C++ frage Pointer Addieren

Discussion on C++ frage Pointer Addieren within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 229
Join Date: Dec 2010
Posts: 245
Received Thanks: 510
C++ frage Pointer Addieren

Wie der name ja eigetlich schon sag würde ich mal gerne wissen wie pointer addiert

Wen ich Google finde ich nix was mir weiter hilft

Thx in Vorraus

~Mfg~
Exera-kun is offline  
Old 06/18/2011, 17:58   #2
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Inwiefern addieren? Die Pointer selber, oder das, auf das die Pointer zeigen?

Ersteres:
Code:
int* ptr1 = &someValue;
int* ptr2 = &someOtherValue;
int* ptr3 = (int*)(int(ptr1) + int(ptr2)); //Keine Ahnung, wo das genau jetzt hinzeigt
int* ptr4 = &someValue + 100; //Keine Ahnung, wo das genau hinzeigt
Zweiteres:
Code:
int* ptr1 = &someValue;
int* ptr2 = &someOtherValue;
int result = (*ptr1) + (*ptr2);
xNopex is offline  
Thanks
1 User
Old 06/18/2011, 18:01   #3
 
elite*gold: 229
Join Date: Dec 2010
Posts: 245
Received Thanks: 510
Verstehe es immer noch nicht ganz

Das auf den pointer zeigt

Um z.b den wert von den pointer zu erhalten


BaseAdress 0x108BC94
offset1 0xBC
offset2 0x190
offset3 0x4
offset4 0x0
offset5 0x20

Wie würde es aussen mit den offset und der addy
Die ich oben angegeben hab

Beispiel damit wäre sehr nätt
Exera-kun is offline  
Old 06/18/2011, 18:04   #4
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Code:
unsigned int base = 0x108BC94;
unsigned int a1 = base + 0xBC;
void* ptr1 = reinterpret_cast<void*>(a1);
xNopex is offline  
Thanks
1 User
Old 06/18/2011, 18:09   #5
 
elite*gold: 229
Join Date: Dec 2010
Posts: 245
Received Thanks: 510
unsigned int base = 0x108BC94;
unsigned int a1 = base + 0xBC;
unsigned int a2 = a1 + 0x190;
void* ptr1 = reinterpret_cast<void*>(a2);

Wäre das richtig
Exera-kun is offline  
Old 06/18/2011, 18:13   #6
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Syntaktisch schon. Kommt darauf an, was du brauchst. Brauchst du einen Pointer, der auf (baseAddress+0x24C) zeigt, dann ja. Sonst nein.
xNopex is offline  
Old 06/18/2011, 18:17   #7
 
elite*gold: 229
Join Date: Dec 2010
Posts: 245
Received Thanks: 510
Naja kenn mich nicht so besonders mit pointer aus glaub aber soll bassadress + 0x24C zeigen

BaseAdress 0x108BC94
offset1 0xBC
offset2 0x190
offset3 0x4
offset4 0x0
offset5 0x20

Ingame ist der adresse des pointer so 33xxxxx - 34xxxxx
Exera-kun is offline  
Old 06/18/2011, 18:34   #8
 
Xenox3's Avatar
 
elite*gold: 169
Join Date: Jun 2010
Posts: 663
Received Thanks: 1,138
@Exera- kun

Das bringt überhaupt nix wenn du angibst was für einen wert die addr ingame besitzt
Xenox3 is offline  
Old 06/18/2011, 18:38   #9
 
elite*gold: 229
Join Date: Dec 2010
Posts: 245
Received Thanks: 510
oohh xD

Naja trotzdem komm ich nicht weiter
Exera-kun is offline  
Old 06/18/2011, 20:33   #10
 
RunzelEier's Avatar
 
elite*gold: 0
Join Date: Dec 2010
Posts: 1,196
Received Thanks: 682
du hast einen level 5 pointer, also nützt es dir nichts die base address mit offsets zu adddieren.
schau worauf deine baseaddresse zeigt.
addiere das erste offset zu dem worauf die baseaddresse zeigt.
schau worauf das zeigt.
addiere das zweite offset zu dem worauf die baseaddresse zeigt plus das offset, worauf das zeigt.
ab dem punkt wirds unübersichtlich xD

du musst immer gucken worauf die addresse + offset zeigt und darauf das offset addieren.

Edit:
ich beschäftige mich erst kurz mit pointern in C++, aber das müsste so aussehen.
correct me if im wrong
Code:
DWORD* base = 0x108BC94;
BYTE Offset1 = 0xBC;
WORD Offset2 = 0x190;
BYTE Offset3 = 0x4;
BYTE Offset4 = 0x0;
BYTE Offset5 = 0x20;
DWORD* Addresse;
Addresse = &base + Offset1; //Wert vom basepointer auslesen und erstes offset addieren
Addresse = &Addresse + Offset2; // wert von addresse + offset...
Addresse = &Addresse + Offset3;
Addresse = &Addresse; //Offset4 = 0
Addresse = &Addresse + Offset5;
RunzelEier is offline  
Old 06/18/2011, 23:50   #11


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by xNopex View Post
Code:
unsigned int base = 0x108BC94;
unsigned int a1 = base + 0xBC;
void* ptr1 = reinterpret_cast<void*>(a1);
Nicht ganz, eigentlich müsste es folgendermaßen aussehen:

Code:
unsigned int base = 0x108BC94;
unsigned int a1 = *base + 0xBC;
void* ptr1 = reinterpret_cast<void*>(a1);
Im normalfall wird das Offset nämlich auf den Wert (also die Adresse der Variable) an der Stelle addiert.

Quote:
Originally Posted by RunzelEier View Post
Code:
DWORD* base = 0x108BC94;
BYTE Offset1 = 0xBC;
WORD Offset2 = 0x190;
BYTE Offset3 = 0x4;
BYTE Offset4 = 0x0;
BYTE Offset5 = 0x20;
DWORD* Addresse;
Addresse = [COLOR="Red"]&base[/COLOR] + Offset1; //Wert vom basepointer auslesen und erstes offset addieren
Addresse = &Addresse + Offset2; // wert von addresse + offset...
Addresse = &Addresse + Offset3;
Addresse = &Addresse; //Offset4 = 0
Addresse = &Addresse + Offset5;
Hier würdest du die Adresse deiner lokalen Variable base verwenden, was ja nicht das Ziel ist.
Tatsächlich wäre es auch hier:

Code:
Addresse = *base + Offset1;
Und das auch in jeder weiteren Zeile, in der du "&" benutzt.
MrSm!th is offline  
Thanks
2 Users
Old 06/19/2011, 01:04   #12
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by MrSm!th View Post
Nicht ganz, eigentlich müsste es folgendermaßen aussehen:

Code:
unsigned int base = 0x108BC94;
unsigned int a1 = *base + 0xBC;
void* ptr1 = reinterpret_cast<void*>(a1);
Hab mir jetzt den Thread nicht durchgelesen, aber wie willst du denn einen Nichtzeiger dereferenzieren?
SmackJew is offline  
Old 06/19/2011, 09:39   #13
 
elite*gold: 229
Join Date: Dec 2010
Posts: 245
Received Thanks: 510
Code:
 #include <windows.h>
#include <iostream>


//addressen//

DWORD* base = 0x108BC94;
BYTE Offset1 = 0xBC;
WORD Offset2 = 0x190;
BYTE Offset3 = 0x4;
BYTE Offset4 = 0x0;
BYTE Offset5 = 0x20;
DWORD* Addresse;
Addresse = *base + Offset1; //Wert vom basepointer auslesen und erstes offset addieren
Addresse = *Addresse + Offset2; // wert von addresse + offset...
Addresse = *Addresse + Offset3;
Addresse = *Addresse; //Offset4 = 0
Addresse = *Addresse + Offset5;


//addressen//

void write()
{
	HWND fenster_handle = NULL;
	DWORD process_id;
	do
	{
		fenster_handle = FindWindow(NULL,TEXT ("S4 Client"));
	}
	while (fenster_handle == NULL);
	GetWindowThreadProcessId( fenster_handle, &process_id);
	HANDLE prozess_hanlde = OpenProcess(PROCESS_ALL_ACCESS,TRUE,process_id);


for(;;)
{
	if(GetAsyncKeyState(VK_NUMPAD3))
	{
	
	*(long*)(*Addresse) = 10000000;

	 MessageBoxA(NULL, "!", "", MB_OK);

  }
 }
}

void Hack()
{
for(;;)
{ 
write();
}
}

BOOL WINAPI DllMain(HINSTANCE mod,DWORD DWORD_GRUND,LPVOID res)
{
	switch(DWORD_GRUND)
	{
	case 1:
		CreateThread(0,0,(LPTHREAD_START_ROUTINE)Hack,0,0,0);
		MessageBoxA(NULL,"Successfully Started!","SoulBeats",MB_OK);

		break;
	case 2:
		break;
	}
	return true;
}
Jetzt kommen 11 fehler einer davon ist int kann nicht zu dowrd kovertiert werden
Exera-kun is offline  
Old 06/19/2011, 10:05   #14
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
Hab mir jetzt den Thread nicht durchgelesen, aber wie willst du denn einen Nichtzeiger dereferenzieren?
Im Eifer des Gefechts hat MrSm!th einen kleinen Cast vergessen (Ich bin immer noch für nen Syntax-Prüfer-Addon, wenn es sowas gibt):
Code:
UINT* base = reinterpret_cast<UINT*>(0x108BC94);
UINT a1 = *base + 0xBC;
void* ptr1 = reinterpret_cast<void*>(a1);
So müsste das passen.

Quote:
einer davon ist int kann nicht zu dowrd kovertiert werden
xNopex is offline  
Old 06/19/2011, 11:09   #15


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by SmackJew View Post
Hab mir jetzt den Thread nicht durchgelesen, aber wie willst du denn einen Nichtzeiger dereferenzieren?
Mein Fehler, jo, da fehlt ein kleiner cast
MrSm!th is offline  
Reply


Similar Threads Similar Threads
3 Day's Pass addieren sich?
05/21/2011 - WarRock - 6 Replies
Ja hallo erstmal. :awesome: wenn ich zumerstenmal 1x einen base pass aktiviere , dann habe ich ja 3 tage gold prem , kann ich dann sofort nocheinen aktivieren damit ich 6 Tage habe und immer so weiter? oder geht das nicht?
string addieren,multiplizieren,....????
11/03/2010 - General Coding - 6 Replies
string addieren,multiplizieren,....???? Hi, die Überschrift ist etwas verwirrend ich weiß, aber ich habe keine Ahnung wie ich das Formulieren soll, deßhalb konnte ich auch nicht via sufu suchen oder Google...:D Also ich sitze gerade daran einen Binomischen Formelrechner zu programmieren, da meine Klasse und ich, das Thema gerade in Mathe haben (für mich trivial) und ich meinen Mitschülern bei den Hausaufgaben etwas unter die Arme greifen möchte.:D So, das ist mein Code: #include <iostream>...
++ Addieren
10/30/2010 - General Coding - 13 Replies
Hallo wie kann ich in einer while mehr als 1 addieren ? Also wenn z.B.: int a ; in der while dann while(bla) a++
Frage: Wie findet man zB UG Pointer?Speed pointer?
03/30/2010 - Kal Online - 2 Replies
kann mir einer sagen wie man UG/Speed pointer finden kann usw^^´ß#
Variabeln addieren
08/08/2009 - AutoIt - 13 Replies
hai leuts hab hier ein kleines prog in arbeit. ist zwar kein bot aber es soll eine überraschung für mein grossvater werden. er liebt es ein schweizer kartenspiel names "jasse" zu spielen und dieses programm soll für ihn rechnen und schreiben. nun zu meinem problem: ich mächte auf der linken seite bei punkte eine zahl ein geben können welche es danach zur gesammtpunktzahl addiert, komishcer weise stimmen die zahlen jedoch nicht wenn ich 10 eingebe und auf den button schreiben drücke...



All times are GMT +1. The time now is 01:43.


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.