|
You last visited: Today at 01:42
Advertisement
C++ frage Pointer Addieren
Discussion on C++ frage Pointer Addieren within the C/C++ forum part of the Coders Den category.
06/18/2011, 17:51
|
#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~
|
|
|
06/18/2011, 17:58
|
#2
|
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);
|
|
|
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
|
|
|
06/18/2011, 18:04
|
#4
|
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);
|
|
|
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
|
|
|
06/18/2011, 18:13
|
#6
|
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.
|
|
|
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
|
|
|
06/18/2011, 18:34
|
#8
|
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
|
|
|
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
|
|
|
06/18/2011, 20:33
|
#10
|
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;
|
|
|
06/18/2011, 23:50
|
#11
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by xNopex
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
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.
|
|
|
06/19/2011, 01:04
|
#12
|
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
|
Quote:
Originally Posted by MrSm!th
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?
|
|
|
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
|
|
|
06/19/2011, 10:05
|
#14
|
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
|
|
|
|
06/19/2011, 11:09
|
#15
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by SmackJew
Hab mir jetzt den Thread nicht durchgelesen, aber wie willst du denn einen Nichtzeiger dereferenzieren?
|
Mein Fehler, jo, da fehlt ein kleiner cast
|
|
|
 |
|
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.
|
|