Hi.
Ich wollte mal einen kleinen Hack für Metin2 machen.
Er sollte einfach den Pointer für meine Y-Koordinate (FLOAT) freezen.
Den Pointer habe ich mit Cheat Engine gefunden. Dieser klappt auch.
Nun wollte ich den einbauen. Das sag in C++ dann so aus:
Was ist an dem Code falsch?
Ich hoffe jemand erkennt den Fehler.
Danke vielmals.
Mfg. Easy
Ich wollte mal einen kleinen Hack für Metin2 machen.
Er sollte einfach den Pointer für meine Y-Koordinate (FLOAT) freezen.
Den Pointer habe ich mit Cheat Engine gefunden. Dieser klappt auch.
Nun wollte ich den einbauen. Das sag in C++ dann so aus:
Leider stürtzt Metin2 wenn ich F1 drücke ab.Quote:
#include "stdafx.h"
#include <iostream>
using namespace std;
DWORD BasePointer = 0;
#define Points0 0x00000008
#define Points1 0x000005dc
#define Points2 0x000002d8
#define Points3 0x00000000
#define Points4 0x0000018g
bool State = false;
void punkte()
{
if(State)
{
DWORD dwBasePointer = *(DWORD*)BasePointer; Wert der Adresse hinzu zufügen
if(dwBasePointer != 0) // Wenn der Pointer nicht 0 ist wird der Wert zugewiesen
{
DWORD &dwPoints = *(DWORD*)(dwBasePointer + Points0);
dwPoints = *(DWORD*)(dwBasePointer + Points1);
dwPoints = *(DWORD*)(dwBasePointer + Points2);
dwPoints = *(DWORD*)(dwBasePointer + Points3);
dwPoints = *(DWORD*)(dwBasePointer + Points4);
dwPoints = 4; set.
}
}
else // Vom State, also deaktivieren wir hier den Hack
{
DWORD dwBasePointer = *(DWORD*)BasePointer;
if(dwBasePointer != 0)
{
DWORD &dwPoints = *(DWORD*)(dwBasePointer + Points0);
dwPoints = *(DWORD*)(dwBasePointer + Points1);
dwPoints = *(DWORD*)(dwBasePointer + Points2);
dwPoints = *(DWORD*)(dwBasePointer + Points3);
dwPoints = *(DWORD*)(dwBasePointer + Points4);
dwPoints = 0;
}
}
}
DWORD WINAPI HackThread(LPVOID unused)
{
//---Hier wird unser BasePointer ausgerechnet !
DWORD ImageBase = (DWORD)GetModuleHandle(0); den Module Handle
BasePointer = ImageBase + 0x002EBE1C;
for(; ;)
{
punkte();
if(GetAsyncKeyState(VK_F1)&1)State =! State;
Sleep(10);
}
}
BOOL WINAPI DllMain(HINSTANCE mod, DWORD DWORD_GRUND, LPVOID res)
{
switch(DWORD_GRUND)
{
case DLL_PROCESS_ATTACH:
CreateThread(0, 0, &HackThread , 0, 0, 0);
MessageBoxA(0, "Hack erfolgreich gestartet!", "Info",0);
break;
case DLL_PROCESS_DETACH:
MessageBoxA(0, "Not Loaded", "Info",0);
break;
}
return TRUE;
}
Was ist an dem Code falsch?
Ich hoffe jemand erkennt den Fehler.
Danke vielmals.
Mfg. Easy