Hallo Liebe Com,
ich hab mal den code 1 zu 1 für die .dll aus diesem tut :
genommen und meine offsets und baseadress hinzugefügt.
Code:
#include <Windows.h>
#include <iostream>
using namespace std;
DWORD BasePointer = 0; // Wir deklarieren den BasePointer und setzten ihm den Wert 0
#define Points1 0x00000004 // Hier definieren wir unseren Offset des Pointers
#define Points2 0x00000088
#define Points3 0x00000000
#define Points4 0x00000018
bool State = false; // Brauchen wir später für das einschalten und auschalten des Hacks
void punkte() // unsere main funktion
{
if(State)
{
DWORD dwBasePointer = *(DWORD*)BasePointer; // Unser Pointer den wir als hilfe verwenden werden um einen Wert der Adresse hinzu zufügen
if(dwBasePointer != 0) // Wenn der Pointer nicht 0 ist wird der Wert zugewiesen
{
DWORD &dwPoints = *(DWORD*)(dwBasePointer + Points1 + Points2 + Points3 + Points4 ); // Hier machen wir eine neue Variable durch den Base Pointer und denn Offset und haben somit die Pointer Adresse
dwPoints = 1000; // Hier bekommt der Pointer bzw. Adresse den Wert 4, 4 macht dann für dich einen ganzen set.
//Also ball durchlassen und du bekommst den Set (1:0)
}
}
else // Vom State, also deaktivieren wir hier den Hack
{
DWORD dwBasePointer = *(DWORD*)BasePointer; // machen wieder eine neue Variable wie oben
if(dwBasePointer != 0) // wenn der Pointer nicht 0 ist wird der Wert zugewiesen
{
DWORD &dwPoints = *(DWORD*)(dwBasePointer + Points1 + Points2 + Points3 + Points4); // wie oben definieren wir mithilfe des Pointers und Offsets die Adresse
dwPoints = 1300; //setzt den wert 0, also ist der Hack deaktiviert
}
}
}
DWORD WINAPI HackThread(LPVOID unused)
{
//---Hier wird unser BasePointer ausgerechnet !
DWORD ImageBase = (DWORD)GetModuleHandle(0); //Die Image Adresse ist in diesem fall FT_Client, holen uns also den Module Handle
BasePointer = ImageBase + 0x2C523C; // Um den BasePointer zu bekommen nehmen wir die Image Adresse und unsere Modul Adresse
//---------------------------------------------
for(; ;) //Eine unendliche schleife weil wir die Adresse gefreezt haben wollen ;)
{
punkte(); //unsere main funktion wird ausgeführt
if(GetAsyncKeyState(VK_F1)&1)State =! State; // Mit F1 aktivieren und deaktivieren wir den Hack
Sleep(10);
}
}
BOOL WINAPI DllMain(HINSTANCE mod, DWORD DWORD_GRUND, LPVOID res)
{
switch(DWORD_GRUND)
{
case DLL_PROCESS_ATTACH: //Falls die dll erfolgreich injeziert wird
CreateThread(0, 0, &HackThread , 0, 0, 0); // Wir erstellen den Thread in dem dann später injezierten Process
MessageBoxA(0, "hack erfolgreich inject", "Info",0);
break;
case DLL_PROCESS_DETACH: //Falls die dll den Process nicht mehr findet
MessageBoxA(0, "Not Loaded", "Info",0); //Eine Messagebox die sagt das dll nicht mehr geladen ist
break;
}
return TRUE;
}
hack compilen und injecten geht wunderbar
aber halt die offsets addieren so wie ich das gemacht habe, funktioniert nartülich nicht:
Code:
DWORD &dwPoints = *(DWORD*)(dwBasePointer + Points1 + Points2 + Points3 + Points4);
zu erst hab ich es noch hiermit versucht:
Code:
DWORD dwValue=1337;
DWORD dwOffset1=*(DWORD*)(0x0026DF57D4+0x63C);
DWORD dwOffset2=*(DWORD*)(dwOffset1+0x20);
DWORD dwOffset3=*(DWORD*)(dwOffset2+0x7FC);
DWORD dwOffset4=*(DWORD*)(dwOffset3+0x4A8);
DWORD dwOffset5=(dwOffset4+0x714);
*(DWORD*)dwOffset5=dwValue;
angepasst nartülich , (code aus dem selben theard wie das tut
) :: dabei ist das spiel beim injecten der .dll einfach abgeschmiert
kann mir jmd bitte sagen wie es richtig mache im fall dieser offsets:
#define Points1 0x00000004
#define Points2 0x00000088
#define Points3 0x00000000
#define Points4 0x00000018
und dieser moduladresse: 2C523C
danke
mfg