Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 07:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



4Story C++ Hack

Discussion on 4Story C++ Hack within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2011
Posts: 96
Received Thanks: 256
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;
}
*Dr.Bob is offline  
Thanks
1 User
Old 01/11/2011, 17:31   #2
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
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.
xNopex is offline  
Thanks
1 User
Old 01/11/2011, 17:33   #3
 
elite*gold: 0
Join Date: Jan 2011
Posts: 96
Received Thanks: 256
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
*Dr.Bob is offline  
Old 01/11/2011, 17:42   #4
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Les dir das nochmal durch und schaue, ob der Thread gestartet wird:


Dazu:

EDIT: Irgendwie glaube ich trotzdem, dass die Adresse schlicht falsch ist bzw. das Anti-Cheat System dein Modul entlädt oder something like this.
xNopex is offline  
Old 01/11/2011, 17:45   #5
 
Xenox3's Avatar
 
elite*gold: 169
Join Date: Jun 2010
Posts: 663
Received Thanks: 1,138
omfg dir fehlt ne while schleife du bob
Xenox3 is offline  
Old 01/11/2011, 17:57   #6
 
elite*gold: 0
Join Date: Jan 2011
Posts: 96
Received Thanks: 256
hähh jez kapier ich 0 wie meinste while schleife?^^
*Dr.Bob is offline  
Old 01/11/2011, 18:41   #7
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
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()
    }
}
xNopex is offline  
Old 01/11/2011, 18:49   #8
 
elite*gold: 0
Join Date: Jan 2011
Posts: 96
Received Thanks: 256
ja aber das bleibt dan ofen in CE also ohne frezzen also muss es auch so gehen
*Dr.Bob is offline  
Old 01/11/2011, 19:24   #9
 
elite*gold: 0
Join Date: Sep 2009
Posts: 445
Received Thanks: 286
Probier es einfach aus, und du wirst staunen o.O
Banana.Crafts is offline  
Old 01/11/2011, 19:52   #10
 
elite*gold: 0
Join Date: Jan 2011
Posts: 96
Received Thanks: 256
ich staune nicht, es funktioniert nicht habs probiert
*Dr.Bob is offline  
Old 01/12/2011, 00:13   #11
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
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.
KDeluxe is offline  
Thanks
2 Users
Old 01/12/2011, 11:43   #12
 
elite*gold: 280
Join Date: Nov 2009
Posts: 2,005
Received Thanks: 26,683
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 ?
*Dr.Bob* is offline  
Old 01/12/2011, 13:56   #13
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
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.
KDeluxe is offline  
Thanks
3 Users
Old 01/12/2011, 14:26   #14
 
elite*gold: 280
Join Date: Nov 2009
Posts: 2,005
Received Thanks: 26,683
Thx, geht wunderbar^^
*Dr.Bob* is offline  
Old 01/12/2011, 15:27   #15
 
elite*gold: 0
Join Date: Jan 2011
Posts: 96
Received Thanks: 256
neeiN!! du hättest nich hier sein dürfen donni du ***** geh weg^^
*Dr.Bob is offline  
Reply




All times are GMT +1. The time now is 07:28.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.