Ultima modifica da un moderatore:
salve oggi vorrei fare un copia in colla di come si crea un hack... pultroppo ancora non so postare le imagini quindi cerchero di metterle su imageshack.
Creiamo le funzioni per gli hack:
Passiamo ora a creare le funzioni per i vari hack che richiameremo in seguito.
Come esempio creerò una funzione che modifica la velocità di movimento (Metin2). Il pointer base è 0x5F29BC mentre i due offset sono rispettivamente 0x10 e 0x5B6 in esadecimale ovviamente.
La prima cosa da fare è definire i vari Address/Offsets (fatelo subito sotto gli include in "hackbase.cpp"):
Codice:
#define Base_Pointer 0x5F29BC
#define Ofs_MovSpeed_1 0x10
#define Ofs_MovSpeed_2 0x5B6
Ed ecco come possiamo creare semplicemente una funzione che modifichi la velocità di movimento (sempre in "hackbase.cpp"):
Codice:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFFvoid MovSpeed(speedVal)
DWORD Addy1 = *(DWORD*)Base_Pointer; //Leggo il valore del pointer base
DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2; //Leggo il valore del valore del pointer base + il primo ofs utilizzato come addy a cui sommo il secondo offset
*(DWORD*)Addy1 = speedVal; //Modifico l'address della velocità con il valore "speedVal" che sarà definito nell'utilizzo della funzione
}
Ora dobbiamo creare le varie opzioni per poter selezionare più velocità , facciamo ad esempio in modo che si possano scegliere delle velocità da 1 fino a 4 con un intervallo di "0,5". Aggiungiamo quindi anche una variabile che ci permetta di scegliere se l'hack deve essere attivato di default oppure no.
Codice:
char *opt_MovSpeed[] = { "Off", "0,0", "1,0", "1,5", "2,0", "2,5", "3,0", "3,5", "4,0" };int CH_MovSpeed = 0;
In questo caso ho posto "CH_Movspeed = 0" facendo in modo che quando l'hack viene injectato la velocità di movimento sarà impostata su OFF. Se avessi voluto impostarla ad esempio su 2,5 avrei dovuto dichiarare: "CH_Movspeed = 5" perchè se "Off" si trova nella posizione 0 della lista, 2,5 si trova nella quinta posizione.
Aggiungiamo gli hack nel menu D3D:
Passiamo quindi all'aggiunta dell'hack nel menu, per farlo dovrete aggiungere una nuova linea tra le esistenti come:
Codice:
pMenu->AddItem("Mov Speed" , &CH_MovSpeed , opt_MovSpeed, 9);
Dove "Mov Speed" è il testo che visualizzerete nel menu, CH_MovSpeed è la variabile dichiarata precedentemente che contiene lo stato dell'hack (attivato, disattivato, ecc), opt_MovSpeed sono le opzioni disponibili ed invece 9 è il numero di opzioni.
Ora adattiamo la funzione creata precedentemente alle nostre opzioni:
Codice:
void MovSpeed(speedVal) { DWORD Addy1 = *(DWORD*)Base_Pointer;
{ DWORD Addy1 = *(DWORD*)Base_Pointer;
DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2;
*(long*)Addy1 = (16226 + (speedVal * 0,5 * 60));}
Facendo in questo modo, se impostiamo l'hack ad esempio su "0,0" che è l'opzione numero 1 avremo: 15256 + (1 x 0.5 x 60) = 16256 che è la velocità di default di metin2.
Se invece sarà impostato su "2,5" che è la quinta opzione avremo: 15256 + (5 x 0.5 x 60) = 16406 e così via...
implementiamo le funzioni nel Menu:
Ora abbiamo quasi finito, dobbiamo solo collegare la nostra funzione con il menu. Per fare ciò andiamo sempre in "hackbase.cpp" e troviamo:
Codice:
// Seperate thread for making hacksDWORD WINAPI HACKthread( LPVOID param )
{ // --- hack loop while (1) { // ..if (CH_stamina) .... // .. Sleep(50); } return 0;}
Modifichiamo quindi questa funzione con:
Codice:
// Seperate thread for making hacksDWORD WINAPI HACKthread( LPVOID param )
{ // --- hack loop while (1) { if (CH_MovSpeed != 0) { MovSpeed(CH_MovSpeed); } Sleep(50); } return 0;}
Abbiamo finito! Per rilasciare l'hack andiamo su: "Build > Set Active Project Configuraton" e scegliamo "Win32-Release". Premiamo infine F7 e troveremo la nostra DLL nella cartella del nostro progetto!
ImageShack® - Online Photo and Video Hosting
come o già detto la guida non e mia quindi non ci capisco un tubo

Materiale Occorrente:
- VC++ 6.0
- MS DirectX SDK 9.0 (Summer 2004)
- D3D framework per D3D8 e D3D9 (base Hans)
Prepariamo il progetto:
Prima di tutto, per chi non lo avesse già fatto, bisogna installare VC++ 6.0 e le SDK che avete scaricato.
Apriamo quindi VC++ 6.0 e creiamo un nuovo progetto per una DLL andando su "File > New > Scheda Projects > Win32 Dynamic-Link Library > Ok". Project Name sarebbe appunto il nome del progetto, io ad esempio lo chiamerò D3D M2 Hack. Vi si aprirà quindi una nuova finestra dove sceglierete "An empty DLL project" e premete su Finish.
Ora importiamo nel progetto i files della base di Hans andando su "Project > Add to Project > Files", cercate quindi la cartella della base di Hans ed impostate i seguenti files uno ad uno:
- d3dbase.h
- d3dbase.cpp
- d3dmenu.h
- d3dmenu.cpp
- hackbase.cpp
Importante: NON importate i files "d3dfont.*"
Prepariamo l'import delle SDK:
Ora passiamo ad Importare i filese le librerie che ci servono per lavorare in D3D. Andiamo su "Tools > Options > Scheda Directories", accertiamoci che nel parametro "Show directories for" ci sia "Include Files" ed in una nuova linea aggiungiamo la cartella "Include" contenuta nella scrtella in cui avete installato le SDK, nel mio caso è: "E
PROGRAMMI\MICROSOFT DIRECTX 9.0 SDK (SUMMER 2004)\INCLUDE"
Codice:
#define FOR_D3D8
//#define FOR_D3D9
Ora è tutto pronto e potete testare che non ci siano errori premendo F7, se compila correttamente significa che possiamo continuare ed inserire i vari hack!
ImageShack® - Online Photo and Video Hosting- VC++ 6.0
- MS DirectX SDK 9.0 (Summer 2004)
- D3D framework per D3D8 e D3D9 (base Hans)
Prepariamo il progetto:
Prima di tutto, per chi non lo avesse già fatto, bisogna installare VC++ 6.0 e le SDK che avete scaricato.
Apriamo quindi VC++ 6.0 e creiamo un nuovo progetto per una DLL andando su "File > New > Scheda Projects > Win32 Dynamic-Link Library > Ok". Project Name sarebbe appunto il nome del progetto, io ad esempio lo chiamerò D3D M2 Hack. Vi si aprirà quindi una nuova finestra dove sceglierete "An empty DLL project" e premete su Finish.
Ora importiamo nel progetto i files della base di Hans andando su "Project > Add to Project > Files", cercate quindi la cartella della base di Hans ed impostate i seguenti files uno ad uno:
- d3dbase.h
- d3dbase.cpp
- d3dmenu.h
- d3dmenu.cpp
- hackbase.cpp
Importante: NON importate i files "d3dfont.*"
Prepariamo l'import delle SDK:
Ora passiamo ad Importare i filese le librerie che ci servono per lavorare in D3D. Andiamo su "Tools > Options > Scheda Directories", accertiamoci che nel parametro "Show directories for" ci sia "Include Files" ed in una nuova linea aggiungiamo la cartella "Include" contenuta nella scrtella in cui avete installato le SDK, nel mio caso è: "E
PROGRAMMI\MICROSOFT DIRECTX 9.0 SDK (SUMMER 2004)\INCLUDE"ImageShack® - Online Photo and Video Hosting
Configuriamo la base per D3D8/D3D9:
Ora a seconda del gioco scegliamo tra D3D9 oppure D3D8, nel mio casod evo utilizzare le D3D8 e quindi vado a modificare nel file d3dbase.h:
Codice:
//#define FOR_D3D8
#define FOR_D3D9
E lo sostituisco con:Configuriamo la base per D3D8/D3D9:
Ora a seconda del gioco scegliamo tra D3D9 oppure D3D8, nel mio casod evo utilizzare le D3D8 e quindi vado a modificare nel file d3dbase.h:
Codice:
//#define FOR_D3D8
#define FOR_D3D9
Codice:
#define FOR_D3D8
//#define FOR_D3D9
Ora è tutto pronto e potete testare che non ci siano errori premendo F7, se compila correttamente significa che possiamo continuare ed inserire i vari hack!
Creiamo le funzioni per gli hack:
Passiamo ora a creare le funzioni per i vari hack che richiameremo in seguito.
Come esempio creerò una funzione che modifica la velocità di movimento (Metin2). Il pointer base è 0x5F29BC mentre i due offset sono rispettivamente 0x10 e 0x5B6 in esadecimale ovviamente.
La prima cosa da fare è definire i vari Address/Offsets (fatelo subito sotto gli include in "hackbase.cpp"):
Codice:
#define Base_Pointer 0x5F29BC
#define Ofs_MovSpeed_1 0x10
#define Ofs_MovSpeed_2 0x5B6
Ed ecco come possiamo creare semplicemente una funzione che modifichi la velocità di movimento (sempre in "hackbase.cpp"):
Codice:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFFvoid MovSpeed(speedVal)
DWORD Addy1 = *(DWORD*)Base_Pointer; //Leggo il valore del pointer base
DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2; //Leggo il valore del valore del pointer base + il primo ofs utilizzato come addy a cui sommo il secondo offset
*(DWORD*)Addy1 = speedVal; //Modifico l'address della velocità con il valore "speedVal" che sarà definito nell'utilizzo della funzione
}
Ora dobbiamo creare le varie opzioni per poter selezionare più velocità , facciamo ad esempio in modo che si possano scegliere delle velocità da 1 fino a 4 con un intervallo di "0,5". Aggiungiamo quindi anche una variabile che ci permetta di scegliere se l'hack deve essere attivato di default oppure no.
Codice:
char *opt_MovSpeed[] = { "Off", "0,0", "1,0", "1,5", "2,0", "2,5", "3,0", "3,5", "4,0" };int CH_MovSpeed = 0;
In questo caso ho posto "CH_Movspeed = 0" facendo in modo che quando l'hack viene injectato la velocità di movimento sarà impostata su OFF. Se avessi voluto impostarla ad esempio su 2,5 avrei dovuto dichiarare: "CH_Movspeed = 5" perchè se "Off" si trova nella posizione 0 della lista, 2,5 si trova nella quinta posizione.
Aggiungiamo gli hack nel menu D3D:
Passiamo quindi all'aggiunta dell'hack nel menu, per farlo dovrete aggiungere una nuova linea tra le esistenti come:
Codice:
pMenu->AddItem("Mov Speed" , &CH_MovSpeed , opt_MovSpeed, 9);
Dove "Mov Speed" è il testo che visualizzerete nel menu, CH_MovSpeed è la variabile dichiarata precedentemente che contiene lo stato dell'hack (attivato, disattivato, ecc), opt_MovSpeed sono le opzioni disponibili ed invece 9 è il numero di opzioni.
Ora adattiamo la funzione creata precedentemente alle nostre opzioni:
Codice:
void MovSpeed(speedVal) { DWORD Addy1 = *(DWORD*)Base_Pointer;
{ DWORD Addy1 = *(DWORD*)Base_Pointer;
DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2;
*(long*)Addy1 = (16226 + (speedVal * 0,5 * 60));}
Facendo in questo modo, se impostiamo l'hack ad esempio su "0,0" che è l'opzione numero 1 avremo: 15256 + (1 x 0.5 x 60) = 16256 che è la velocità di default di metin2.
Se invece sarà impostato su "2,5" che è la quinta opzione avremo: 15256 + (5 x 0.5 x 60) = 16406 e così via...
implementiamo le funzioni nel Menu:
Ora abbiamo quasi finito, dobbiamo solo collegare la nostra funzione con il menu. Per fare ciò andiamo sempre in "hackbase.cpp" e troviamo:
Codice:
// Seperate thread for making hacksDWORD WINAPI HACKthread( LPVOID param )
{ // --- hack loop while (1) { // ..if (CH_stamina) .... // .. Sleep(50); } return 0;}
Modifichiamo quindi questa funzione con:
Codice:
// Seperate thread for making hacksDWORD WINAPI HACKthread( LPVOID param )
{ // --- hack loop while (1) { if (CH_MovSpeed != 0) { MovSpeed(CH_MovSpeed); } Sleep(50); } return 0;}
Abbiamo finito! Per rilasciare l'hack andiamo su: "Build > Set Active Project Configuraton" e scegliamo "Win32-Release". Premiamo infine F7 e troveremo la nostra DLL nella cartella del nostro progetto!
come o già detto la guida non e mia quindi non ci capisco un tubo

però o pensato di postarla lo stesso o pensato che potesse essere utile

ciau da Regins68

