CFFG - CrossFire Fantasy Games Hacks


You are not connected. Please login or register

[Tutorial]Hacking Requirements - Hack Information

4 posters

Go down  Message [Page 1 of 1]

DaChosen


Registered User
Registered User

•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 Things & Information

•Unpacking CShell.dll (Directory : C:/Program Files / Crossfirefg)
- 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.

Public Base to learn from


♦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 [You must be registered and logged in to see this link.]
\\====================================================================================//
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:
DaChosen

Cr4zy[ox]

Cr4zy[ox]
Admininstrator
Admininstrator

lech wont take you to another place.

https://cffg.umforum.net

Quackers 196

Quackers 196
Admininstrator
Admininstrator

im pretty sure this was leeched from somewhere and not yours

buddhayang


Senior Member
Senior Member

Leeched and I know the site

Sponsored content



Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum