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~
Wen ich Google finde ich nix was mir weiter hilft
Thx in Vorraus
~Mfg~
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
int* ptr1 = &someValue; int* ptr2 = &someOtherValue; int result = (*ptr1) + (*ptr2);
unsigned int base = 0x108BC94; unsigned int a1 = base + 0xBC; void* ptr1 = reinterpret_cast<void*>(a1);
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;
Nicht ganz, eigentlich müsste es folgendermaßen aussehen:Quote:
Code:unsigned int base = 0x108BC94; unsigned int a1 = base + 0xBC; void* ptr1 = reinterpret_cast<void*>(a1);
unsigned int base = 0x108BC94; unsigned int a1 = *base + 0xBC; void* ptr1 = reinterpret_cast<void*>(a1);
Hier würdest du die Adresse deiner lokalen Variable base verwenden, was ja nicht das Ziel ist.Quote:
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;
Addresse = *base + Offset1;
Hab mir jetzt den Thread nicht durchgelesen, aber wie willst du denn einen Nichtzeiger dereferenzieren?Quote:
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);
#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;
}
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):Quote:
Hab mir jetzt den Thread nicht durchgelesen, aber wie willst du denn einen Nichtzeiger dereferenzieren?
UINT* base = reinterpret_cast<UINT*>(0x108BC94); UINT a1 = *base + 0xBC; void* ptr1 = reinterpret_cast<void*>(a1);
[Only registered and activated users can see links. Click Here To Register...]Quote:
einer davon ist int kann nicht zu dowrd kovertiert werden