Hacking Requirements - Hack Information
This tutorial will cover some of the most common things seen in Public bases.
I'll also provide some useful links to get you started.
I'll also provide some useful links to get you started.
•What do i need to learn in order to be able to code hacks?
- C++ (It sure covers a huge part in coding hacks so by learning this you're closer to achieving making your own hacks)
- Assembly (Will help you understand Pointers and Offsets better
- How to use IDA Pro & Olly Debug (These are the most common used debuggers in order to unpack cshell or search functions for the game)
- Direct X (DirectX will be useful to you if you are planning to make a menu hack or functions like Wallhack / Chamms )
♦I want to get started but i dont know from where to start!
-Since you are a beginner , and dont know how to make your own base and stuff you can learn much from Bases that are public released.
Although , most of them (Or better all of them since they are all basically the same (@Swiftdude 's base) will be patched or are already patched)
In that case , you must understand the way the whole thing is working so that you can make your own one.
Useful Links to get you started
♦ C++ :
- LearnCpp
- Cplusplus
- C++ Tutorials
- C , C++ Books & Resources
• Assembly
- Windows Assembly Tutorial
- Art of Assembly Language
♦Direct X
- Coming Soon
Useful Things & Information
•Unpacking CShell.dll (Directory : C:/Program Files / Z8Games / Crossfire)
- In cshell.dll you can find many useful things. Some of them are Pointers & Offsets for the functions that you will use in your hack.
♦What do you need?
- Olly Debugger ( Will be uploaded )
- LoadLibrary.exe ( Will be uploaded )
•Steps on unpacking it :
1)Put Loadlib.exe in Crossfire's Directory
2)Open Loadlib.exe (You will see a meesage that says "Library has been loaded!")
3)Open Olly Debugger
4)Click on File > Attach (And find the Loadlib.exe process)
5)After that , wait for Olly to load it
6)Right Click > View > Module Cshell.dll ( or Module Cshell)
7)Right Click > Search For > All referrenced text strings
8)Then a new window will open
9)Right Click > Search for text
10) Your Done! Now all you have to do is to search for the functions you want to find (Will provide some names & use bellow)
Public Base to learn frrom
♦This base is detected , but you can learn from it in many ways.You can try making it undetected on your own
Code:
#include<windows.h>
#define WeaponMgr 0xA0F338 // Weapon Pointer , Outdated
#define NoReload 0x2420 // Our No Reload function offset
DWORD WINAPI Hacks(LPVOID)
{
bool reload = false; // Make it true; if you want it to be auto on
while(1)
{
DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll");
DWORD pWeaponMgr = *(DWORD*)(CShell + WeaponMgr);
if(reload)
{
if (pWeaponMgr)
{
for(int i=0; i<445; i++) // Weapon Loop. 445 = the number of the weapons
{
if((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) + NoReload) = 100; // 100 is the value for no reload
}
}
}
Sleep(100);
}
}
bool Ready2Hook()
{
if(GetModuleHandleA("CShell.dll") != NULL
&& GetModuleHandleA("ClientFx.fxd") != NULL)
return 1;
return 0;
}
DWORD WINAPI Wait(LPVOID)
{
while(!Ready2Hook()) Sleep(200);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Hacks, NULL, NULL, NULL);
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
//================================== OPTIONAL =========================================\\
MessageBoxA(0, "Message Test","Message Title", 0);
system("start www.mpgh.net")
\\====================================================================================//
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Wait,0,0,0);
}
return 1;
}
String names of the most common functions
Code:
ReloadAnimRatio - Weapon Reload (No Reload) ChangeWeaponAnimRatio - Weapon change delay (No weapon change delay) AmmoDamage - Weapon Damage (One hit kill) LowerAnimRate - Weapon Recoil (Less Recoil not full No Recoil) CharacterHiddenAlpha - See Ghost CharacterHiddenWalkAlpha - See Ghost CharacterHiddenRunAlpha - See Ghost MovementHiddenRate - See Ghost C4PlantTime - Obviously C4 Plant time C4DefuseTime - Obviously C4 Defuse time MaxCanDefuseDistance - Distance that you can defuse the bomb Range -Weapon Range ShotsPerAmmo - Shotgun Spread EdgeShotEnabled - Shoot Through Wall WallShotEnabled - Shoot Through Wall PerfectWallShotEnabled - Shoot Through Wall More coming soon ...
Useful Stuff / Base Tutorial
•How to make your own base ?
- Thanks to @Brimir you can learn from his tutorial so that it will be easier to start with making your own base.
(It maybe is detected or patched , i dont know but still its a great tutorial to learn from)
-How to make a base
NOTE : Things you have to know before reading his tutorial (To understand it easier)
- How to use Classes
- What Classes are
Making some of the Common features
♦Making No Reload
Code:
/* First define No Reload's Offset & Weapon Pointer */
#define WeaponPointer 0x000000 (You have to find the Pointer)
#define NoReload 0x0000 (You have to find the Offset)
/*If you want to make your hack Auto On put this before it */
bool noreload = true; // Dont make it the same name with the defined one.
/* Then add these */
DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll"); // When CShell word will be used , it will understand it is CShell.dll
DWORD pWeaponMgr = *(DWORD*)(CShell + WeaponPointer); // Wehn pWeaponMgr word will be used , it will understand that it is CShell with Weapon Pointer
/* Then add this */
if(noreload)
{
if (pWeaponMgr) // Look above if you dont remember what it is ;p
{
for(int i=0; i<445; i++) // Weapon Loop. 445 = the number of the weapons
{
if((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) + NoReload) = 100; // 100 is the value for no reload
}
}
}
/* You are done. Add this to your base or you can simply make it on your own way */
Code:
/* First define No Weapon Change Delay's Offset & Weapon Pointer */
#define WeaponPointer 0x000000 (You have to find the Pointer)
#define WeaponChangeDelay 0x0000 (You have to find the Offset)
/*If you want to make your hack Auto On put this before it */
bool nochange = true; // Dont make it the same name with the defined one.
/* Then add these */
DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll"); // When CShell word will be used , it will understand it is CShell.dll
DWORD pWeaponMgr = *(DWORD*)(CShell + WeaponPointer); // Wehn pWeaponMgr word will be used , it will understand that it is CShell with Weapon Pointer
/* Then add this */
if(nochange)
{
if (pWeaponMgr) // You already know what this is
{
for(int i=0; i<445; i++) // You already know what this is
{
if((*(DWORD*)((*(DWORD*)(CShell+pWeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(CShell+pWeaponMgr))+(4*i))) + WeaponChangeDelay) = 100; // You already know what this is
}
}
}
/* You are done. Add this to your base or you can simply make it on your own way */
More Coming soon ..
♦Credits :
- @Brimir
- @Swiftdude
- @~FALLEN~
- Will complete the list later , since i dont have much time. Thanks.
![=]](/forum/images/emotions/=].gif)



...@
..
