Here i will explain some basics, for make a crossfire hack.
First, you need to find some addys:
Download Olly and Olly plugins, (atachment).
Creat a script with c++, add this code:
Code:
#include "windows.h"
#include <iostream>
int main()
{
DWORD err;
HINSTANCE hDLL = LoadLibrary("CShell.dll"); // Handle to DLL
if(hDLL != NULL) {
printf("Library has been loaded\n");
}
else {
err = GetLastError();
printf("Couldn't load dll\n");
}
system("pause");
return 0;
}
Put it in crossfire folder and run it.
Open Olly and press atach, and find the program that u created.
in the code that will show up, press "Shearch for--All referenced text (somthing like that)"
Press "M" in the top.
Then go to Plugins-Make Dump of process"
it will show up a window, shearch for "Cshell 1000000000" and save it.
Then close all, press open and select the file that u saved.
Press Shift+F7+F8+F9, then press OK in the message that will show up.
Right Click, Shearch for-- all referenced text
And Find addys , for exemple, press right click, shearch text, select the 2 things, and whrite: ReloadAnimeRatio (for the no reload addy)
Download Olly Here ->
http://www.ollydbg.de/Now, open c++, press new project, select win32, then creat a win32 Project .
It will show up a message, press next, select dll and press finish.
It will Create a dll project, for manage the dll click were the image is showing:
Then on Dllmain.cpp, just whrite the folowing:
Add at the begining of ur code in c++ add this:
Code:
#include "stdafx.h"
Then Define ur addys, for exemple:
Code:
#define noreload 0x2698
Add this after defining and including:
Code:
DWORD WINAPI Hacks(LPVOID)
{
Then just add ur function, for exemple:
Code:
bool hak = true;
For continu add this:
Code:
while(1)
{
DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll");
DWORD pWeaponMgr = *(DWORD*)(CShell+WeaponMgr);
Define the WeaponMgr, for find addy, go in olly shear noreload and the next addy will be 10A**** and somthing (* = a number), delete the "10" and add 0x at the begining
After it just creat ur hack.
Code:
if (hak)
{
if (pWeaponMgr) //define weaponmgr
{
for(int i=0; i<560; i++)//560 is the number of the weapons, soo it will afect all weapons
{
if((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) + NoReload ) = 150;//150 is the reload speed
}
Full code
Code:
#include "stdafx.h"
#define WeaponMgr 0xA65EE8
#define NoReload 0x2698
DWORD WINAPI Hacks(LPVOID)
{
bool hak = true;
bool recoil = true;
while(1)
{
DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll");
DWORD pWeaponMgr = *(DWORD*)(CShell+WeaponMgr);
if(hak)
{
if (pWeaponMgr)
{
for(int i=0; i<560; i++)
{
if((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(CShell+WeaponMgr))+(4*i))) + NoReload ) = 150;
}
}
}
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 )
{
MessageBoxA(0, "your test Here for the message","your title message", 0);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Wait,0,0,0);
}
return 1;
}
After all this, just debug it, by pressing the "start" icon up there.
then go to your project folder--debug.
then you will see a .dll file, thats it
thx and add credits