Any updated versions of this?
Better to explain video maybe better thank you :) :)

Originally Posted by
Fly3r
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.
•
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 */
•
Making No Weapon change delay
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 */
♦
This is the end of the tutorial , i didnt have much time making it better ( Still , i think its good ).If you follow this tutorial , im sure that you will become a great Coder ( General )
More Coming soon ..
♦
Credits :
- @Brimir
- @Swiftdude
- @~FALLEN~
- Will complete the list later , since i dont have much time. Thanks.
Better to explain video maybe better thank you
is there any updated version of this hack? tried working
thank you,its very useful
Hi. I'm new here. After I loaded the LoadLibrary.exe where Crossfire directory is located, I opened my Olly dbg and then click File > Attach. After that, I selected the loadlibrary.exe then click "attach" button. Then right click somewhere in the new popped-up window. However, I never see any "view" menu. is there something wrong in what I did?