[c++] Korrekturlesen

02/21/2012 12:16 JixhE#1
Code:
#include "stdafx.h"
#include <iostream>

using namespace std;

DWORD BasePointer = 0;  // Wir deklarieren den BasePointer und setzten ihm den Wert 0
#define Points 0x00000424  // Hier definieren wir unseren Offset des Pointers

bool State = false;   // Brauchen wir später für das einschalten und auschalten des Hacks

DWORD BasePointer2 = 0;  // Wir deklarieren den BasePointer und setzten ihm den Wert 0
#define Points2 0x00000424  // Hier definieren wir unseren Offset des Pointers

bool State2 = false;

void name()    // 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

        }

    }
    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

            dwPoints = 0; //setzt den wert 0, also ist der Hack deaktiviert

        }
    }
}

void pwd()    // unsere main funktion
{
        if(State)
    {
        DWORD dwBasePointer2 = *(DWORD*)BasePointer2;  // Unser Pointer den wir als hilfe verwenden werden um einen Wert der Adresse hinzu zufügen 
        if(dwBasePointer2 != 0) // Wenn der Pointer nicht 0 ist wird der Wert zugewiesen
        {
            DWORD &dwPoints2 = *(DWORD*)(dwBasePointer2 +  Points2); // Hier machen wir eine neue Variable durch den Base Pointer und denn Offset und haben somit die Pointer Adresse

        }

    }
    else // Vom State, also deaktivieren wir hier den Hack
    {
        DWORD dwBasePointer2 = *(DWORD*)BasePointer2;  // machen wieder eine neue Variable wie oben
        if(dwBasePointer2 != 0)  // wenn der Pointer nicht 0 ist wird der Wert zugewiesen
        {    
            DWORD &dwPoints2 = *(DWORD*)(dwBasePointer2 +  Points2);  // wie oben definieren wir mithilfe des Pointers und Offsets die Adresse

            dwPoints2 = 0; //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 + 0x003C5448;  // 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 ;)
    {
        name();  //unsere main funktion wird ausgeführt
        if(GetAsyncKeyState(VK_F1)&1)State =! State; // Mit F1 aktivieren und deaktivieren wir den Hack
        Sleep(10);
    }
}

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 + 0x003C5448;  // 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 ;)
    {
        pwd();  //unsere main funktion wird ausgeführt
        if(GetAsyncKeyState(VK_F2)&1)State =! State2; // 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, "Fehler 0x001", "Info",0);  //Eine Messagebox die sagt das dll nicht mehr geladen ist
        break;
    }
    return TRUE;
}
02/21/2012 12:22 jacky919#2
Code:
#include "stdafx.h"
#include <iostream>

using namespace std;
Wofür? Du brauchst die Windows Funktionen...
Und da du das, hättest du es selber geschrieben, wohl gewusst hättest, stinkt das nach C'n'P.
02/21/2012 12:26 JixhE#3
so gut wie CnP
02/21/2012 12:29 jacky919#4
Dann kann man wohl auch davon ausgehen, dass du nicht wirklich C++ Kenntnisse besitzt, weswegen du hier auf wenig Unterstützung treffen wirst.
02/21/2012 12:56 JixhE#5
naja...ich lerne gerade mit buch..
02/21/2012 13:01 jacky919#6
Dann empfehle ich dir, das Buch zu Ende zu lesen und erst dann an zu fangen Hacks etc. zu programmieren.
02/21/2012 18:32 MrSm!th#7
C&P != Lernen

#closed