Suche Hilfe von erfahrenen "Gamehackern"

01/12/2013 09:51 marykillsjane#1
Code:
 #include <Windows.h>
#include <iostream>



DWORD BasePointer = 0;  // Wir deklarieren den BasePointer und setzten ihm den Wert 0
#define Points 0x000005ba  // Hier definieren wir unseren Offset des Pointers
#define Points2 0x00000004
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 +  Points); // Hier machen wir eine neue Variable durch den Base Pointer und denn Offset und haben somit die Pointer Adresse
			DWORD &dwPoints2 = *(DWORD*)(dwPoints +  Points2);
            std::cout << dwPoints2 << std::endl;
			dwPoints2 +=5;
        }

    }
    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 +  Points);  // wie oben definieren wir mithilfe des Pointers und Offsets die Adresse
			DWORD &dwPoints2 = *(DWORD*)(dwPoints + Points2 );
            dwPoints2 = 0; //setzt den wert 0, also ist der Hack deaktiviert
			std::cout << "Fail" <<std::endl;
        }
    }
}

DWORD WINAPI HackThread(LPVOID unused)
{
    
	AllocConsole();
    FILE *stream;

    freopen_s( &stream, "CONOUT$", "w", stdout );
    freopen_s(&stream, "CONIN$","r",stdin);
    //---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 + 0x003D0868;  // 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
        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;
}
Habe mir ein Tutorial zum Gamehacking gesucht die Adressen sind 100%ig die richtigen ,denn sie funktionieren mit ce auch nach mehrfachem neustart.Mein Problem ist ,dass sobald ich meine dll injekte sich der Client schließt ( das kann an keiner schutzfunktion liegen ) denn andere dlls lassen sich dort auch einwandfrei injekten .
Ich verstehe einfach nicht was falsch sein kann evtl liegt der Fehler dabei wie ich versuche die ImageBase auszulesen ,und er schreibt deshalb in eine Falsche addresse wodurch sich das Spiel schließt ,aber ich habe es auch schon mir ner asm Funktion zum auslesen der Image Base versucht aber das selbe ergebnis der Client schließt einfach .

Sieht jmd von euch evtl woran der Fehler liegen könnte?
01/12/2013 09:56 prosgames#2
Du solltest auch schreiben worum es geht....

/edit autor hat inhalt eingefügt
01/12/2013 09:57 marykillsjane#3
Quote:
Originally Posted by prosgames View Post
Du solltest auch schreiben worum es geht....
Ich weiß ich hatte ausversehen auf enter gedrückt ,wodurch das Thema viel zu früh erstellt wurde :D habs aber jetzt editiert.