Hello.
I found offset that when NOP'ed freezes your ammo.
When I nop it from ollydbg it works as it should. Freezs ammo.
But when I inject my dll it crashes as soon as I activate it (Pressing F4).
Can you help me to repair it?
Code:
#include <Windows.h>
#include <wchar.h>
#define ThreadMake(x) CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)&x,NULL,0,NULL);
#define ThreadMakeParam(x, param) CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)&x,param,0,NULL);
void Initialize();
void ToggleAmmo();
byte * pAmmoOffset = NULL;
void Hotkeys()
{
while(true)
{
if (GetAsyncKeyState(VK_F4))
{
ToggleAmmo();
}
Sleep(1000);
}
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
Initialize();
ThreadMake(Hotkeys);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
void Initialize()
{
DWORD temp = (DWORD)GetModuleHandle(L"CryGameCrysis2");
pAmmoOffset = (byte *)temp + 0x4225D;
//WCHAR tempChar[256];
//swprintf(tempChar, 256, L"0x%X", pAmmoOffset);
//MessageBox(NULL, tempChar, L"Info", MB_OK | MB_ICONASTERISK);
}
void ToggleAmmo()
{
static bool hack_activated = false;
if(hack_activated)
{
*pAmmoOffset = 0x89;
*(pAmmoOffset + 1) = 0x70;
*(pAmmoOffset + 2) = 0x04;
hack_activated = false;
}
else
{
*pAmmoOffset = 0x90;
*(pAmmoOffset + 0x1) = 0x90;
*(pAmmoOffset + 0x2) = 0x90;
hack_activated = true;
}
}