//Achtung//
You have got to have some basic C++ knowledge!
Du brauchst ein wenig Wissen inC++ um das hier zu machen
Hey all,
Hey ihr,
I'm going to show you all how to make a NoMenu hack using Visual C++ 2008.
Download Visual C++ 2008 here:

Ich zeige euch mal ,wie ihr ein NoMenü Hack in Visual C++ 2008 macht.
Download Visual C++ 2008 hier:

Select language and press "Download"
Wähl deine Sprache aus und drück "Download"
Now install and etc. (you have to reboot once)
Jetzt installiere das Programm, etc. (mach ein Neustart am ende =D )
When installed start "Microsoft Visual C++ 2008 Express Edition" :
Wenn du es installiert hast starte C++:
When fully started up. Go to File >>> New >>> Project :
Wenn du es gestartet hast erstelle ein neues Projekt ( Datei>Neu>Neues Projekt)
In left menu select "Win32" and than on the right select "Win32 Project" than enter a name and press ok :
Wähle im linken Men Win32 und dann wähle rechts Win32 Project.
Tipp den Namen ein und akzeptiere:
Press next, than mark empty project and press "Finish" :
Drück Weiter und dann makiere ein leeres Projekt und drücke Ende:
Now, in the left menu your project will appear:
Dann kommt an der linken Seite ein Menü
Solution 'NoMenuLegendary' (1 project)
- NoMenuLegendary
* Header Files
* Resource Files
* Source Files
To start the base of the NoMenu hack, right click on the folder "Source Files" and than "Add" >>> "New Item" :
Mach ein rechtsklick und drück hinzufügen > neues Element
Now in the menu that shows up, click on "C++ File (.ccp)" and than enter name (example: "main") than pres "Add":
[Übersetzung folgt...]
Now a blank document will appear.
This is where the real NoMenu hack building starts
We start off defining some windows stuff:
Code:
#include <windows.h> #include <stdio.h>
Code:
//--------------------------Define Hacks--------------------------// #define Playerpointer <Playerpointer addie here> #define Serverpointer <Serverpointer addie here> //--------------------------End Define Addies--------------------------//
(by the way, what // does is: It makes it not include in the hack so you won't recieve errors for this.
It's most used to remember things for if you watch back later and you're like WTH did I do ;p.
Beneath the addies define something for the "HackThread" <<< I will tell more about what this does later.
Code:
//--------------------------Define HackThread--------------------------// DWORD *ingame= (DWORD*)Playerpointer; DWORD *outgame= (DWORD*)Serverpointer; //--------------------------End Define HackThread--------------------------//
Code:
//--------------------------Start Hacks--------------------------//
void superjump () //super jump
{
if(GetAsyncKeyState(VK_CONTROL) &1)
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_Z) = 1000;
}
}
}
void nfd () //NFD
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;
}
}
//--------------------------End Hacks--------------------------//
OFS_Z and NFD_Player_Offset.
So what we have to do is define those aswell.
Code:
#define OFS_Z <OFS_Z addie here> #define NFD_Player_OffSet <NFD addie here>
Now. We are going to add a hackthread.
Code:
//-------------------------HackThread--------------------------//
void HackThread()
{
for(;; )
{
if(*ingame)
{
superjump();
nfd();
}
if(*outgame)
{
}
}
Sleep(200); //prevent for overloading the cpu
}
//--------------------------End HackThread--------------------------//
[q] What does a HackThread do?
[a] It includes the hacks you have added to your NoMenu hack. When you don't add them in the hackthread they will NOT work ingame.
[q] Why is there an ingame and outgame?
[a] The ingame is for Playerhacks like stamina, superjump, no fall damage etc. The outgame is for Serverhacks like Premium, Extra slot, Supermaster etc.
The end of the hack:
Code:
//--------------------------End--------------------------//
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;
}
}
//--------------------------End--------------------------//
[q] What does this do?
[a] When you inject to WarRock, this makes sure all you have put in the HackThread will be activated to WarRock so it actually works. Alot of people forget to include Hackthread and say: "My hack doesn't work!".
In the end it should look like this:
Code:
#include <windows.h>
#include <stdio.h>
//--------------------------Define Hacks--------------------------//
#define Playerpointer <Playerpointer addie here>
#define Serverpointer <Serverpointer addie here>
#define OFS_Z <OFS_Z addie here>
#define NFD_Player_OffSet <NFD addie here>
//--------------------------End Define Addies--------------------------//
//--------------------------Define HackThread--------------------------//
DWORD *ingame= (DWORD*)Playerpointer;
DWORD *outgame= (DWORD*)Serverpointer;
//--------------------------End Define HackThread--------------------------//
//--------------------------Start Hacks--------------------------//
void superjump () //super jump
{
if(GetAsyncKeyState(VK_CONTROL) &1)
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_Z) = 1000;
}
}
}
void nfd () //NFD
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;
}
}
//--------------------------End Hacks--------------------------//
//-------------------------HackThread--------------------------//
void HackThread()
{
for(;; )
{
if(*ingame)
{
superjump();
nfd();
}
if(*outgame)
{
}
}
Sleep(200); //prevent for overloading the cpu
}
//--------------------------End HackThread--------------------------//
//--------------------------End--------------------------//
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;
}
}
//--------------------------End--------------------------//
Beneath it will say of you still have errors. If it says succeeded but warnings just ignore the warnings
In that window of text, there will be something like:
1>Build log was saved at "file://c:\Users\Secret\Documents\Visual Studio 2008\Projects\NoMenuLegendary\Debug\BuildLog.htm"
Look up: c:\Users\Secret\Documents\Visual Studio 2008\Projects\NoMenuLegendary\Debug (in my case)
And you will find your dll in there
All hacks that DON"T need bypass:
- SuperJump
- No Fall Damage
- Virtual Dig
- No spread
- No water
- No bounds
- No recoil
- Stamina
- Speed
- No fog
- Fullbright
- Fast all (fast ammo, fast health, fast repair, fast flag)
- Teleport
- No spawn
- Fifth slot
- Premium
- Supermaster
- Extra clip Assault
- Extra clip Sniper
- Low Gravity
Other Hotkeys and Source Codes
//Low Gravity :: Hotkey = Middle mousebutton
Code:
void lowgravity ()
{
if (GetAsyncKeyState(VK_MBUTTON)) //hotkey is middel mouse buttom
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPTR;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_GRAV) = 100.0f;
}
}
}
Code:
void Slots5 ()
{
DWORD dwPlayerPtr = *(DWORD*)Serverpointer;
if(dwPlayerPtr != 0)
{
*(long*)(dwPlayerPtr+Slot5_OffSet) = 1;
}
}
Code:
void spread () //no spread
{
*(float*) No_Spread = 0;
}
Code:
void ExtraAmmo () //we want extrea clip allways =)
{
*(int*)(Extra_Ammo_1) = 1;
}
void ExtraAmmo2 () //we want extrea clip allways =)
{
*(int*)(Extra_Ammo_2) = 1;
}
Code:
void Dig()
{
if(GetAsyncKeyState(VK_MENU) &1)
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_Z) = -2000;
}
}
}
Code:
void nowater () //no water
{
long t=0;
unsigned long Protection;
VirtualProtect((void*)No_Water, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)No_Water, &t , sizeof(t));
VirtualProtect((void*)No_Water, sizeof(t), Protection, 0);
}
Code:
void nobounds () //nobounds
{
long t=0;
unsigned long Protection;
VirtualProtect((void*)No_Bounds_2, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)No_Bounds_2, &t , sizeof(t));
VirtualProtect((void*)No_Bounds_2, sizeof(t), Protection, 0);
VirtualProtect((void*)No_Bounds_2, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)No_Bounds_2, &t , sizeof(t));
VirtualProtect((void*)No_Bounds_2, sizeof(t), Protection, 0);
}
Code:
void nfd () //NFD
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;
}
}
Code:
void norecoil () //norecoil
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_NORECOIL1) = 0;
*(float*)(dwPlayerPtr+OFS_NORECOIL2) = 0;
*(float*)(dwPlayerPtr+OFS_NORECOIL3) = 0;
}
}
Code:
void stamina () //stamina
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+Stamina_OffSet) = 30;
}
}
Code:
void stamina () //stamina
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+Stamina_OffSet) = 100;
}
}
Code:
void jump () //super jump
{
if(GetAsyncKeyState(VK_CONTROL) &1)
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_Z) = 1000;
}
}
}
Code:
void speedoff ()
{
if(GetAsyncKeyState(VK_NUMPAD0) &1<< 0xF)
{
*(float*)(Speed) = 100.0f;
}
}
Code:
void speedon3 ()
{
if(GetAsyncKeyState(VK_NUMPAD3) &1<< 0xF)
{
*(float*)(Speed) = 500.0f;
}
}
Code:
void speedon2 ()
{
if(GetAsyncKeyState(VK_NUMPAD2) &1<< 0xF)
{
*(float*)(Speed) = 300.0f;
}
}
Code:
void speedon1 ()
{
if(GetAsyncKeyState(VK_NUMPAD1) &1<< 0xF)
{
*(float*)(Speed) = 200.0f;
}
}
Code:
void nofog () //no fog
{
*(float*)GlassWalls_FarFog = 1166127104;//far fog address
*(float*)Near_Fog = 0; //nearfog addres
}
Code:
void fullbright () //fullbright
{
*(int*)(Full_Bright_1) = 1092779973;
*(int*)(Full_Bright_2) = 1092779973;
*(int*)(Full_Bright_3) = 1092779973;
}
Code:
void FastAll ()
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)Fast_Repair = 10.0f;
*(float*)Fast_Health = 5.0f;
*(float*)Fast_Flag = 10.0f;
*(float*)Fast_Ammo = 5.0f;
}}
Code:
void Teleport ()
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer; /// Player Pointer Addie
if(dwPlayerPtr != 0)
{
float PositionY = 0.0; float PositionX = 0.0;float PositionZ = 0.0;
PositionX = *(float*)(dwPlayerPtr + OFS_X);
PositionY = *(float*)(dwPlayerPtr + OFS_Y);
PositionZ = *(float*)(dwPlayerPtr + OFS_Z);
if(GetAsyncKeyState(VK_NUMPAD5)&1){
Telx = PositionX;
Tely = PositionY;
Telz = PositionZ;}
if(GetAsyncKeyState(VK_NUMPAD4)&1){
*(float*)(dwPlayerPtr + OFS_X) = Telx;
*(float*)(dwPlayerPtr + OFS_Y) = Tely;
*(float*)(dwPlayerPtr + OFS_Z) = Telz;}
if(GetAsyncKeyState(VK_NUMPAD6)&1){
*(float*)(dwPlayerPtr + OFS_X) += 30;}}}
Code:
void Spawn ()
{
long t=0;
unsigned long Protection;
VirtualProtect((void*)ADR_QUICKSPAWN1, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)ADR_QUICKSPAWN1, &t , sizeof(t));
VirtualProtect((void*)ADR_QUICKSPAWN1, sizeof(t), Protection, 0);
VirtualProtect((void*)ADR_QUICKSPAWN2, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)ADR_QUICKSPAWN2, &t , sizeof(t));
VirtualProtect((void*)ADR_QUICKSPAWN2, sizeof(t), Protection, 0);
}
Code:
void Supermaster ()
{
DWORD dwSrvrPtr = *(DWORD*)Serverpointer;
if(dwSrvrPtr != 0){
*(int*)(dwSrvrPtr+Super_Master_OffSet) = 1;
}
}
Code:
void bronze() //Bronze Premium
{
DWORD dwSrvrPtr = *(DWORD*)Serverpointer;
if(dwSrvrPtr != 0)
{
*(long*)(dwSrvrPtr+Premium_OffSet) = 1, 10; // 1 = bronze 2 = silver 3 = gold 4 = platinum
{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;
}}}
Code:
void silver() //SilverPremium
{
DWORD dwSrvrPtr = *(DWORD*)Serverpointer;
if(dwSrvrPtr != 0)
{
*(long*)(dwSrvrPtr+Premium_OffSet) = 2, 10; // 1 = bronze 2 = silver 3 = gold 4 = platinum
{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;
}}}
Code:
void gold() //Gold Premium
{
DWORD dwSrvrPtr = *(DWORD*)Serverpointer;
if(dwSrvrPtr != 0)
{
*(long*)(dwSrvrPtr+Premium_OffSet) = 3, 10; // 1 = bronze 2 = silver 3 = gold 4 = platinum
{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;
}}}
Code:
void platinum () //Platinum Premium
{
DWORD dwSrvrPtr = *(DWORD*)Serverpointer;
if(dwSrvrPtr != 0)
{
*(long*)(dwSrvrPtr+Premium_OffSet) = 4, 10; // 1 = bronze 2 = silver 3 = gold 4 = platinum
{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;
}}}
Code:
VK_LBUTTON -- Left mouse button VK_RBUTTON --Right mouse button VK_CANCEL -- Control-break processing VK_MBUTTON -- Middle mouse button (three-button mouse) VK_BACK -- BACKSPACE key VK_TAB -- TAB key VK_CLEAR -- CLEAR key VK_RETURN -- ENTER key VK_SHIFT -- SHIFT key VK_CONTROL -- CTRL key VK_MENU -- ALT key VK_PAUSE -- PAUSE key VK_CAPITAL -- CAPS LOCK key VK_ESCAPE -- ESC key VK_SPACE -- SPACEBAR VK_PRIOR -- PAGE UP key VK_NEXT -- PAGE DOWN key VK_END -- END key VK_HOME -- HOME key VK_LEFT -- LEFT ARROW key VK_UP -- UP ARROW key VK_RIGHT -- RIGHT ARROW key VK_DOWN -- DOWN ARROW key VK_SELECT -- SELECT key VK_PRINT -- PRINT key VK_EXECUTE -- EXECUTE key VK_SNAPSHOT -- PRINT SCREEN key VK_INSERT -- INS key VK_DELETE -- DEL key VK_HELP -- HELP key
Well, this was about it. When I know more of something I forgot or something than I'll add it.
Credits:
Legendary for making tutorial.
Zeas for descovering this methode.
Fresh_Maker for sharing to FPS
Pasch22
Bmw;2418






