Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

Creare un NoMenù by Frenz ò.ò
(Questo messaggio è stato modificato l'ultima volta il: 22/12/2012, 12:05 da SeSel.)

Iscritto
Messaggi: 75
Discussioni: 17
Registrato: 09-2012
Mix: 0
Requisiti :

Un PC
Un Cervello
Visual C++ 2010
10 Minuti Happywide

Salve a tutti , in questo tutorial vorrei spiegarvi come creare un piccolo NoMenù per WarRock con solo tre funzioni, in questo caso :

Digger se questa è concorrenza chiudimi il topic Asd

  1. SuperJump
  2. NoFallDamage
  3. 5Slot

Prima di tutto, apriamo Visual C++ 2010, facciamo un nuovo progetto e seguiamo i seguenti screen :


[Immagine: 2ld98b8.png]
[Immagine: 2i7pwyt.png]
[Immagine: snc7mf.png]
[Immagine: 34ig2uq.png]
[Immagine: 72exzr.png]



Adesso scriviamo in Main.cpp prima di tutto gli #include, questi :

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

Ora scriviamo gli Address per far funzionare le funzioni(assicuratevi di avere quelli aggiornati):
In Questo caso ci servono ADR_PlayerPointer,ADR_ServerPointer,OFS_Slot5,ADR_NoFallDamage,OFS_Z(questo address stabilisce la posizione del player in gioco, è da questo che noi ricaveremo il SuperJump).

Scriviamo gli Address:

Codice:
#define ADR_PlayerPointer   0x00A4EE50 // Aggiornati al 22/12/12
#define ADR_ServerPointer         0x00A4EDE0// Aggiornati al 22/12/12
#define OFS_5SLOT                 0x00C70C4// Aggiornati al 22/12/12
#define OFS_Z                     0x0010308 // Aggiornati al 22/12/12
#define OFS_NoFallDamage          0x102E8 // Aggiornati al 22/12/12

Ora scriviamo le funzioni, iniziamo dal 5Slot, :

Codice:
void 5Slot()
    {
DWORD xServer = *(DWORD*)ADR_ServerPointer;//DWORD xServer = ADR_ServerPointer, vuol dire che se noi scriviamo xServer il compilatore lo indica come ADR_ServerPointer.
if(xServer != 0)
{
*(long*)(xServer+OFS_5SLOT) = 1;//xServer(ADR_ServerPointer) + OFS_5SLOT = 1;
}
    }



Adesso scriviamo NoFallDamage :

Codice:
void NoFallDamage ()
{
DWORD xPlayer = *(DWORD*)ADR_PlayerPointer; // Ancora le DWORD in questo caso però xPlayer indica ADR_PlayerPointer
if(xPlayer != 0)
{
*(float*)(xPlayer +OFS_NoFallDamage) = -20000; // DWORD xPlayer(ADR_PlayerPointer) + OFS_NoFallDamage = -20000;
}
}


Adesso SuperJump :

Codice:
void SuperJump ()
{
if(GetAsyncKeyState(VK_CONTROL) &1) // Questo indica che Se Viene Premuto Control(CTRL) l'azione viene eseguita
{
DWORD xPlayer = *(DWORD*)ADR_PlayerPointer;// Ancora le DWORD con PlayerPointer[/color]

if(xPlayer != 0)
{
*(float*)(xPlayer +OFS_Z) = 1000; // xPlayer(ADR_PlayerPointer) + OFS_Z(Posizione Personaggio) = 1000; ovvero che il player si troverà mille volte in alto.

}
}
}

Adesso lo Start Hack che è quello che raggruppa tutte le funzioni insieme e le attiva :

Codice:
void StartHack ()
{
for(;;)  // Ciclo infinito
{


SuperJump();
5Slot();
NoFallDamage();

Sleep(20);
}
}

Adesso il codice che starta le funzioni (5Slot,SuperJump,NoFallDamage),
Dal codice qui sotto vedrete CreateThread ... StartHack.. perchè StartHack? Non dovrebbe esserci SuperJump,5Slot e NoFallDamage? Ecco, invece di scrivere tutte le funzioni una ad una , scriviamo StartHack che le raggruppa tutte Smile

Codice:
BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)StartHack, NULL, NULL, NULL);
    }

    return TRUE;
}


Altrimenti sarebbe stato così :

Codice:
BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)SuperJump, NULL, NULL, NULL);
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)5Slot, NULL, NULL, NULL);
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)NoFallDamage, NULL, NULL, NULL);
    }

    return TRUE;
}

FINITO IL NOMENU' PREMIAMO F7 ed è fatta Smile

fonte : Frenz ( io Happywide )

22/12/2012, 12:03
#1
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
macchè sei stato bravissimo, ti metto pure +1
solo il codice magari si potrebbe editare perchè si legga meglio, ma alla fine fanno tutti copia incolla senza leggere niente quindi ha poca importanza Happywide


digger
23/12/2012, 11:29
#2
Cerca

Iscritto
Messaggi: 75
Discussioni: 17
Registrato: 09-2012
Mix: 0
(23/12/2012, 11:29)digger Ha scritto:

[Per vedere i link devi REGISTRARTI.]

macchè sei stato bravissimo, ti metto pure +1
solo il codice magari si potrebbe editare perchè si legga meglio, ma alla fine fanno tutti copia incolla senza leggere niente quindi ha poca importanza Happywide


Ho letto qualche guida qui sul forum e c'era il Box C++ Programming ,sto ancora cercando come si mette... o.o

25/12/2012, 10:26
#3
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Complimenti , ma uno sleep 20 è davvero poco per quelle funzioni , sono tutte funzioni "lente ," lo sleep si potrebbe mettere anche 100 (anche se non ha alcuna importanza. ) se ci fosse norecoil o nospread allora cambierebbe....

25/12/2012, 12:32
#4
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  creare applicazioni? Pocciox 2 1,648 19/08/2013, 14:52
Ultimo messaggio: Pocciox
  Problema crezione hack nomenu warrock Dimax 15 6,419 05/04/2013, 18:05
Ultimo messaggio: Dimax
  [Guida] Guida passo-passo: C++ Hack Nomenu digger 70 19,770 26/01/2013, 17:58
Ultimo messaggio: digger



Utenti che stanno guardando questa discussione: 1 Ospite(i)