I'll try it out when I get home, on my phone at the moment.
Very weird..
Very weird..
#include "windows.h"
#include "detours.h"
#pragma comment(lib, "detours.lib")
DWORD pReturn = 0x45B765;
__declspec(naked) void Machine_Gun_Increase(void)
{
_asm
{
MOV EBX,DWORD PTR SS:[ESP+10]
MOV DWORD PTR DS:[EAX],EDX
MOV ESI,DWORD PTR DS:[ESI+14]
INC DWORD PTR DS:[ESI]
LEA ESI,DWORD PTR SS:[ESP+24]
JMP pReturn
}
}
DWORD WINAPI MainThread(LPVOID)
{
DetourFunction((BYTE*)0x45B756,(BYTE*)Machine_Gun_Increase);
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread(NULL, NULL, MainThread, NULL, NULL, NULL);
}
return true;
}
unsigned long ret = 0x0045B75F+6;
unsigned long old;
VirtualProtect((void*)0x0045B75F,sizeof(unsigned long),PAGE_EXECUTE_READWRITE,&old);
DetourFunction((BYTE*)0x0045B75F,(BYTE*)Inc_ammo);
*(BYTE*)(0x0045B75F+5) = 0x90;
0045B75F |. FF0E DEC DWORD PTR DS:[ESI] 0045B761 |. 8D7424 24 LEA ESI,DWORD PTR SS:[ESP+24]
VirtualProtect((void*)0x0045B75F,sizeof(unsigned long),PAGE_EXECUTE_READWRITE,&old);
DetourFunction((BYTE*)0x0045B75F,(BYTE*)Inc_ammo);
*(BYTE*)(0x0045B75F+5) = 0x90;