elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   C/C++ (https://www.elitepvpers.com/forum/c-c/)
-   -   4Story C++ Hack (https://www.elitepvpers.com/forum/c-c/947051-4story-c-hack.html)

*Dr.Bob 01/11/2011 16:21

4Story C++ Hack
 
Hallo Leute,
ich bin gerade dabei C++ zu Lernen und einen Hack für 4Story zu schreiben es is eine DLL.
Der Hack soll den wert von Handel auf 1 Setzen wenn F5 gedrückt wird doch irgendwie klappt das nicht so richtig und ich finde auch keine fehler, danke schonmal im vorraus:



#include <windows.h>
#include <stdio.h>

#define Addr_Base 0x6CA388
#define Offs_1 0x318
#define Offs_2 0x128

void Speedhack()
{

if(GetAsyncKeyState(VK_F5))
{
*(DWORD*)(Addr_Base + Offs_1 + Offs_2) = 1;
}
}



void HackThread()
{
Speedhack();
Sleep(30);
}

BOOL WINAPI DllMain( HINSTANCE HMODULE, DWORD dwReason, LPVOID lpvReserved)
{
if(dwReason == DLL_PROCESS_ATTACH)
{
MessageBoxA(NULL, "4Story DLL NoMenu Hack", "Hack", MB_OK);
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread, 0, 0, 0);
}
return TRUE;
}

xNopex 01/11/2011 17:31

Quote:

ich bin gerade dabei C++ zu Lernen
Sieht man.

1st: Anstatt #include <stdio.h> lieber #include <cstdio>, wenn c++. Jedoch scheint mir der Include für dein Quellcode überflüssig.

2nd: Anstatt
Code:

void HackThread()
lieber
Code:

DWORD WINAPI HackThread( LPVOID lpParam )
Damit sparst du dir später den Cast beim erstellen des Threads.

3rd: Anstatt
Code:

CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread, 0, 0, 0);
Lieber
Code:

CreateThread(NULL, 0, HackThread, NULL, 0, NULL);
Dein Compiler sollte dich gewarnt haben.

4th: Zum eig. Problem: CreateThread gibt nen return-Wert zurück, anhand welchem du herausfindest, ob dein Thread überhaupt erfolgreich erstellt wurde. Wenn ja, dann stimmt wohl deine Adresse nicht.

*Dr.Bob 01/11/2011 17:33

mein compiler hat mich vor garnix gewarnt oO und doch die addresse stimmt da ich nen bypass hab und in CE eingefügt habe, muss an was anderes liegen, kannst du mir vlt ne richtige version von dem was ich dir gepostet habe machen damit ich es richtig lerne? oder wie ist das mit WriteProcessMemory? 4Story is kein Shootergame, und ich hab das tut wie ich den ahck gecoded hab aus ner Shooter game section btw Warrock

xNopex 01/11/2011 17:42

Les dir das nochmal durch und schaue, ob der Thread gestartet wird:
[Only registered and activated users can see links. Click Here To Register...]

Dazu: [Only registered and activated users can see links. Click Here To Register...]

EDIT: Irgendwie glaube ich trotzdem, dass die Adresse schlicht falsch ist bzw. das Anti-Cheat System dein Modul entlädt oder something like this.

Xenox3 01/11/2011 17:45

omfg dir fehlt ne while schleife du bob

*Dr.Bob 01/11/2011 17:57

hähh jez kapier ich 0 wie meinste while schleife?^^

xNopex 01/11/2011 18:41

Tatsache, das habe ich gar nicht gesehen. Im Thread solltest du noch eine Schleife einbauen, sonst wird die FUnktion nur einmal aufgerufen und dann beendet sich der Thread. In etwa so:

Code:

DWORD WINAPI HackThread( LPVOID lpParam )
{
    while( TRUE )
    {
        //... Funktionen aufrufen + Sleep()
    }
}


*Dr.Bob 01/11/2011 18:49

ja aber das bleibt dan ofen in CE also ohne frezzen also muss es auch so gehen

Banana.Crafts 01/11/2011 19:24

Probier es einfach aus, und du wirst staunen o.O

*Dr.Bob 01/11/2011 19:52

ich staune nicht, es funktioniert nicht habs probiert

KDeluxe 01/12/2011 00:13

Code:

*(DWORD*)(Addr_Base + Offs_1 + Offs_2) = 1;
Da sollte eigentlich jedem etwas auffallen.

Das die Schleife fehlt ist mir auch nicht aufgefallen, da das eigentlich eine Selbstverständlichkeit ist. "HackThread()" und "Speedhack()" könnte außerdem zusammenfassen.

Ich habe das ganze mal so gelöst, sollte eigentlich funktionieren:
Code:

#include <windows.h>

DWORD Addr_Base = 0x6CA388;
DWORD Offset[2] = {0x318, 0x128};

void HackThread(){
        MessageBoxA(NULL, "4Story DLL NoMenu Hack\nBlablablabla", "Hack", MB_OK);
        while(true){
                if(GetAsyncKeyState(VK_F5)){
                        DWORD Address = *(DWORD*)(Addr_Base);
                        Address = *(DWORD*)(Address + Offset[0]);
                        Address = *(DWORD*)(Address + Offset[1]);

                        if(Address == 1){
                                Address = 0;
                        }else{
                                Address = 1;
                        }
                }

                Sleep(50);
        }
}

BOOL WINAPI DllMain(HINSTANCE HMODULE, DWORD dwReason, LPVOID lpvReserved){
        if(dwReason == DLL_PROCESS_ATTACH){
                CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread, 0, 0, 0);
        }
        return TRUE;
}

Das ganze ist je nach Situation des Spiels noch fehleranfällig, das könnte man aber mit einer If-Abfrage verhindern. Für dein Problem sollte es aber reichen.

*Dr.Bob* 01/12/2011 11:43

Erst mal danke KillerDeluxe für dein Beispiel, aber irgendwas stimmt da nicht.
Er erkennt zwar das die Speicheradresse z.b 0 oder 1 ist aber ändert sie nicht.
Vielleicht ist dies: Address = 1; nicht ausreichend ?

KDeluxe 01/12/2011 13:56

Kleiner Denkfehler von mir, so geht es:
Code:

#include <windows.h>

DWORD Addr_Base = 0x6CA388;
DWORD Offset[2] = {0x318, 0x128};

void HackThread(){
        MessageBoxA(NULL, "Blablablabla", "Hack", MB_OK);
        while(true){
                if(GetAsyncKeyState(VK_F5)){
                        DWORD Address = *(DWORD*)(Addr_Base);
                        Address = *(DWORD*)(Address + Offset[0]);
                        DWORD Value = *(DWORD*)(Address + Offset[1]);

                        if(Value == 1){
                                *(DWORD*)(Address + Offset[1]) = 0;
                        }else{
                                *(DWORD*)(Address + Offset[1]) = 1;
                        }
                        Sleep(250);
                }

                Sleep(50);
        }
}

BOOL WINAPI DllMain(HINSTANCE HMODULE, DWORD dwReason, LPVOID lpvReserved){
        if(dwReason == DLL_PROCESS_ATTACH)
                CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread, 0, 0, 0);
        return true;
}

BTW, mach mal deinen LC Hack aus der Signatur.

*Dr.Bob* 01/12/2011 14:26

Thx, geht wunderbar^^

*Dr.Bob 01/12/2011 15:27

neeiN!! du hättest nich hier sein dürfen donni du arsch geh weg^^

Banana.Crafts 01/12/2011 15:30

Dann liegt's an den Addies.

*Dr.Bob 01/12/2011 15:54

danke nochmal
#closerrequest


All times are GMT +2. The time now is 14:06.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.