Hey all,
I'm going to show you all how to make a NoMenu hack using Visual C++ 2008.
Download Visual C++ 2008 here: Click
+
Select language and press "Download":
Now install and etc. (you have to reboot once)
When installed start "Microsoft Visual C++ 2008 Express Edition"
When fully started up. Go to File >>> New >>> Project
In left menu select "Win32" and than on the right select "Win32 Project" than enter a name and press ok :
Press next, than mark empty project and press "Finish" :
Now, in the left menu your project will appear:
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" :
Now in the menu that shows up, click on "C++ File (.ccp)" and than enter name (example: "main") than pres "Add":
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>
Than we are going to define our hacks :
Code:
//--------------------------Define Hacks--------------------------//
#define Playerpointer Playerpointer addie here
#define Serverpointer Serverpointer addie here
//--------------------------End Define Addies--------------------------//
These are just the basic addies that you will allways need.
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--------------------------//
Now First you create 2 sections, PlayerHacks and ServerHacks like this:
Code:
//--------------------------Start Hacks--------------------------//
void PlayerHacks() // Start PlayerHacks
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0){
}} //End PlayerHacks
void ServerHacks() // Start ServerHacks
{
DWORD dwSrvrPtr=*(DWORD*)Serverpointer;
if(dwSrvrPtr!=0){
}} //End ServerHacks
//--------------------------End Hacks--------------------------//
Now we can put some hacks in. I'll take, Superjump, No Fall Damage and Visual Premium.
PlayerHacks: Superjump and No Fall Damage.
ServerHacks: Visual Premium.
This is what it should look like:
Code:
//--------------------------Start Hacks--------------------------//
void PlayerHacks() // Start PlayerHacks
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0){
//Superjump
{if(GetAsyncKeyState(VK_CONTROL) &1){
*(float*)(dwPlayerPtr+OFS_Z) = 1000;}}
//End Superjump
//No Fall Damage
{*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;}
//End No Fall Damage
}} //End PlayerHacks
void ServerHacks() // Start ServerHacks
{
DWORD dwSrvrPtr=*(DWORD*)Serverpointer;
if(dwSrvrPtr!=0){
//Visual Platinum Premium | 1220 days or smthing.
{*(long*)(dwSrvrPtr+Premium_OffSet) = 4, 10;{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;}}
//End Visual Platinum Premium
}} //End ServerHacks
//--------------------------End Hacks--------------------------//
You see that there are 4 adresses we don't know yet.
OFS_Z, NFD_Player_Offset, Premium_OffSet and OFS_PREMIUM2.
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
#define Premium_OffSet Premium_OffSet addie here
#define OFS_PREMIUM2 OFS_PREMIUM2 addie here
You add those to the "Define Hacks"
Now. We are going to add a hackthread.
Code:
//-------------------------HackThread--------------------------//
void HackThread()
{
for(;; )
{
if(*ingame)
{
PlayerHacks();
}
if(*outgame)
{
ServerHacks();
}
}
Sleep(200); //prevent for overloading the cpu
}
//--------------------------End HackThread--------------------------//
You see I included the hacks "superjump" and "nfd".
[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 warc0ck, this makes sure all you have put in the HackThread will be activated to warc0ck 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>
#define Premium_OffSet <Premium_OffSet addie here>
#define OFS_PREMIUM2 <OFS_PREMIUM2 addie here>
//--------------------------End Define Addies--------------------------//
//--------------------------Define HackThread--------------------------//
DWORD *ingame= (DWORD*)Playerpointer;
DWORD *outgame= (DWORD*)Serverpointer;
//--------------------------End Define HackThread--------------------------//
//--------------------------Start Hacks--------------------------//
void PlayerHacks() // Start PlayerHacks
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0){
//Superjump
{if(GetAsyncKeyState(VK_CONTROL) &1){
*(float*)(dwPlayerPtr+OFS_Z) = 1000;}}
//End Superjump
//No Fall Damage
{*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;}
//End No Fall Damage
}} //End PlayerHacks
void ServerHacks() // Start ServerHacks
{
DWORD dwSrvrPtr=*(DWORD*)Serverpointer;
if(dwSrvrPtr!=0){
//Visual Platinum Premium | 1220 days or smthing.
{*(long*)(dwSrvrPtr+Premium_OffSet) = 4, 10;{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;}}
//End Visual Platinum Premium
}} //End ServerHacks
//--------------------------End Hacks--------------------------//
//-------------------------HackThread--------------------------//
void HackThread()
{
for(;; )
{
if(*ingame)
{
PlayerHacks();
}
if(*outgame)
{
ServerHacks();
}
}
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--------------------------//
Now after this is done, Press F7 or go to top menu: "Build" >>> "Build Solution (F7)".
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
- Scope
All Codes (Sorry some are still writen the old way):
Code:
// Hack Codes \\
//-------------All Server Hacks------------------//
void ServerHacks() // Start ServerHacks
{
DWORD dwSrvrPtr=*(DWORD*)Serverpointer;
if(dwSrvrPtr!=0){
//Fifth Slot
{*(long*)(dwSrvrPtr+Slot5_OffSet) = 1;}
//Visual lvl 100
{*(long*)(dwSrvrPtr+Visual_100)=0x00FD4000;}
//Platinum Premium
{*(long*)(dwSrvrPtr+Premium_OffSet) = 4, 10;{
*(float*)(dwSrvrPtr+OFS_PREMIUM2) = 1, 1;}}
//Super Master
{*(int*)(dwSrvrPtr+Super_Master_OffSet) = 1;}
}} //End Server Hacks
//-------------All Player Hacks------------------//
void PlayerHacks() // Start PlayerHacks
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0){
//Speed Roll x2
{ if(GetAsyncKeyState(VK_NUMPAD8) &1<< 0xF){
*(float*)(SpeedRoll) = 2.0f;}}
//Speed Roll x3
{if(GetAsyncKeyState(VK_NUMPAD9) &1<< 0xF){
*(float*)(SpeedRoll) = 3.0f;}}
//Speed Roll Normal
{if(GetAsyncKeyState(VK_NUMPAD7) &1<< 0xF){
*(float*)(SpeedRoll) = 1.0f;}}
//Speed x2
{if(GetAsyncKeyState(VK_NUMPAD1) &1<< 0xF){
*(float*)(Speed) = 200.0f;}}
//Speed x3
{if(GetAsyncKeyState(VK_NUMPAD2) &1<< 0xF){
*(float*)(Speed) = 300.0f;}}
//Speed x5
{if(GetAsyncKeyState(VK_NUMPAD3) &1<< 0xF){
*(float*)(Speed) = 500.0f;}}
//Speed Normal
{if(GetAsyncKeyState(VK_NUMPAD0) &1<< 0xF){
*(float*)(Speed) = 100.0f;}}
//Superjump
{if(GetAsyncKeyState(VK_CONTROL) &1){
*(float*)(dwPlayerPtr+OFS_Z) = 1000;}}
//Unlimited Stamina
{*(float*)(dwPlayerPtr+Stamina_OffSet) = 100;}
//No Recoil
{*(float*)(dwPlayerPtr+OFS_NORECOIL1) = 0;
*(float*)(dwPlayerPtr+OFS_NORECOIL2) = 0;
*(float*)(dwPlayerPtr+OFS_NORECOIL3) = 0;}
//No Fall Damage
{*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;}
//No Spawn Wait
{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);}
//Teleport
{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;}}
//Fast All
{*(float*)Fast_Repair = 10.0f;
*(float*)Fast_Health = 5.0f;
*(float*)Fast_Flag = 10.0f;
*(float*)Fast_Ammo = 5.0f;}
//Full Bright
{*(int*)(Full_Bright_1) = 1092779973;
*(int*)(Full_Bright_2) = 1092779973;
*(int*)(Full_Bright_3) = 1092779973;}
//No Fog
{*(float*)GlassWalls_FarFog = 1166127104;
*(float*)Near_Fog = 0;}
//No Bounds
*(int*)(No_Bounds_1)=0;*(int*)(No_Bounds_2)=0;
//No Water
*(int*)(ADR_NOWATER)=0;
//Virtual Dig
{if(GetAsyncKeyState(VK_MENU) &1){
*(float*)(dwPlayerPtr+OFS_Z) = -2000;}}
//Extra Ammo A
{*(int*)(Extra_Ammo_1) = 1;}
//Extra Ammo S
{*(int*)(Extra_Ammo_2) = 1;}
//No Spread
{*(float*) No_Spread = 0;}
//Scope
{if(GetAsyncKeyState(VK_RBUTTON)){*(int*)(ADR_SCOPE) = 1;}
//Low Gravity
{if (GetAsyncKeyState(VK_MBUTTON)){
*(float*)(dwPlayerPtr+OFS_GRAV) = 100.0f;}}
}} //End PlayerHacks
Well, this was about it. When I know more of something I forgot or something than I'll add it.
Credits:
Legendary+taylan for making tutorial.
Zeas for descovering this methode.
Allowed to leech, GIVE CREDITS!
contact for questions :taylan-11@hotmail.de