Ultima modifica:
Inizio col dire che gli hack in D3D gli sanno creare tutti quelli con una preparazione medio/buona. Ho postato questa guida più per chi crede che hackerare sia facile, in modo da convincerli del contrario. Sappiate che con questa guida si creano hack scarsi, non pensate di creare aimbot, opk, telekill o robe del genere.
Prima di tutto: scaricate/comprate ed installate vc++ 2010. QUA scaricate il redistributable package, ma non so se funziona. Io ho installato c++ da disco.
scaricate il D3D base ed estraete D3Dbase.zip
scaricate ed installate DirectX SDK Download details: DirectX 9.0 SDK Update - (Summer 2004)
GUIDA RICONTROLLATA DA ME (era piena di errori)
Gli esempi sono di metin 2, se trovate address su internet potete usare quelli
Guida di Italian Hack (o almeno così pare)
Prepariamo il progetto:
Prima di tutto, per chi non lo avesse gia 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 mt2 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 è: "EPROGRAMMI\MICROSOFT DIRECTX 9.0 SDK (SUMMER 2004)\INCLUDE"
Ora in "Show directories for" scegliamo "Library Files" ed invece che la cartella "INCLUDES" aggiungiamo la cartella "LIB" che nel mio caso si trova qui: "EPROGRAMMI\MICROSOFT DIRECTX 9.0 SDK (SUMMER 2004)\LIB"
Configuriamo la base per D3D8/D3D9:
Ora a seconda del gioco scegliamo tra D3D9 oppure D3D8, nel mio casod devo utilizzare le D3D8 e quindi vado a modificare nel file d3dbase.h:
Codice:
//#define FOR_D3D8
#define FOR_D3D9
E lo sostituisco con:
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! Wink
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"):
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
void MovSpeed(speedVal)
2.
{
3.
DWORD Addy1 = *(DWORD*)Base_Pointer; //Leggo il valore del pointer base
4.
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
5.
*(DWORD*)Addy1 = speedVal; //Modifico l'address della velocità con il valore "speedVal" che sarà definito nell'utilizzo della funzione
6.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
void 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:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
void MovSpeed(speedVal)
2.
{
3.
DWORD Addy1 = *(DWORD*)Base_Pointer;
4.
DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2;
5.
*(long*)Addy1 = (16226 + (speedVal * 0,5 * 60));
6.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
void MovSpeed(speedVal)
{
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:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
// Seperate thread for making hacks
2.
DWORD WINAPI HACKthread( LPVOID param )
3.
{
4.
// --- hack loop
5.
while (1) {
6.
7.
// ..if (CH_stamina) ....
8.
// ..
9.
10.
Sleep(50);
11.
}
12.
return 0;
13.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
// Seperate thread for making hacks
DWORD WINAPI HACKthread( LPVOID param )
{
// --- hack loop
while (1) {
// ..if (CH_stamina) ....
// ..
Sleep(50);
}
return 0;
}
Modifichiamo quindi questa funzione con:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
// Seperate thread for making hacks
2.
DWORD WINAPI HACKthread( LPVOID param )
3.
{
4.
// --- hack loop
5.
while (1) {
6.
7.
if (CH_MovSpeed != 0)
8.
{
9.
MovSpeed(CH_MovSpeed);
10.
}
11.
12.
Sleep(50);
13.
}
14.
return 0;
15.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
// Seperate thread for making hacks
DWORD 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!
Ora sta a voi cercare di capire bene il tutto e come creare qualche cosa di più avanzato. Per le funzioni ho utilizzato dei metodi un po' ortodossi per fare in fretta ma potrete utilizzare il metodo che vi sembrerà più adatto.
So che molti non capiranno niente di questa guida. Se non capite dovete studiare c++ o fare cose più semplici, vi arriveranno le conoscenze.
Se qualcuno fa post o altro dove chiede come si creano hack, rifilategli il link di questa guida
SEGNALATE QUA PER EVENTUALI ERRORI DELLA GUIDA
Se avete problemi chiedete qua nel topic, non tramite pm.
I +1 sono accetti, anche se la guida non è creata da me.
Edit: rimossi errori degli accenti, aggiunta fonte (che sembra sia Italian Hack)
Prima di tutto: scaricate/comprate ed installate vc++ 2010. QUA scaricate il redistributable package, ma non so se funziona. Io ho installato c++ da disco.
scaricate il D3D base ed estraete D3Dbase.zip
scaricate ed installate DirectX SDK Download details: DirectX 9.0 SDK Update - (Summer 2004)
GUIDA RICONTROLLATA DA ME (era piena di errori)
Gli esempi sono di metin 2, se trovate address su internet potete usare quelli
Guida di Italian Hack (o almeno così pare)
Prepariamo il progetto:
Prima di tutto, per chi non lo avesse gia 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 mt2 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 è: "EPROGRAMMI\MICROSOFT DIRECTX 9.0 SDK (SUMMER 2004)\INCLUDE"
Ora in "Show directories for" scegliamo "Library Files" ed invece che la cartella "INCLUDES" aggiungiamo la cartella "LIB" che nel mio caso si trova qui: "EPROGRAMMI\MICROSOFT DIRECTX 9.0 SDK (SUMMER 2004)\LIB"
Configuriamo la base per D3D8/D3D9:
Ora a seconda del gioco scegliamo tra D3D9 oppure D3D8, nel mio casod devo utilizzare le D3D8 e quindi vado a modificare nel file d3dbase.h:
Codice:
//#define FOR_D3D8
#define FOR_D3D9
E lo sostituisco con:
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! Wink
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"):
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
void MovSpeed(speedVal)
2.
{
3.
DWORD Addy1 = *(DWORD*)Base_Pointer; //Leggo il valore del pointer base
4.
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
5.
*(DWORD*)Addy1 = speedVal; //Modifico l'address della velocità con il valore "speedVal" che sarà definito nell'utilizzo della funzione
6.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
void 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:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
void MovSpeed(speedVal)
2.
{
3.
DWORD Addy1 = *(DWORD*)Base_Pointer;
4.
DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2;
5.
*(long*)Addy1 = (16226 + (speedVal * 0,5 * 60));
6.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
void MovSpeed(speedVal)
{
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:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
// Seperate thread for making hacks
2.
DWORD WINAPI HACKthread( LPVOID param )
3.
{
4.
// --- hack loop
5.
while (1) {
6.
7.
// ..if (CH_stamina) ....
8.
// ..
9.
10.
Sleep(50);
11.
}
12.
return 0;
13.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
// Seperate thread for making hacks
DWORD WINAPI HACKthread( LPVOID param )
{
// --- hack loop
while (1) {
// ..if (CH_stamina) ....
// ..
Sleep(50);
}
return 0;
}
Modifichiamo quindi questa funzione con:
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
1.
// Seperate thread for making hacks
2.
DWORD WINAPI HACKthread( LPVOID param )
3.
{
4.
// --- hack loop
5.
while (1) {
6.
7.
if (CH_MovSpeed != 0)
8.
{
9.
MovSpeed(CH_MovSpeed);
10.
}
11.
12.
Sleep(50);
13.
}
14.
return 0;
15.
}
C++ Code: Line Numbers: ON/OFF - Expand: ON/OFF
// Seperate thread for making hacks
DWORD 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!
Ora sta a voi cercare di capire bene il tutto e come creare qualche cosa di più avanzato. Per le funzioni ho utilizzato dei metodi un po' ortodossi per fare in fretta ma potrete utilizzare il metodo che vi sembrerà più adatto.
So che molti non capiranno niente di questa guida. Se non capite dovete studiare c++ o fare cose più semplici, vi arriveranno le conoscenze.
Se qualcuno fa post o altro dove chiede come si creano hack, rifilategli il link di questa guida
SEGNALATE QUA PER EVENTUALI ERRORI DELLA GUIDA
Se avete problemi chiedete qua nel topic, non tramite pm.
I +1 sono accetti, anche se la guida non è creata da me.
Edit: rimossi errori degli accenti, aggiunta fonte (che sembra sia Italian Hack)