Join Date: Aug 2007
Posts: 1957
|
Kategorie: Other FPS Games Entwickler: can1357
Beschreibung: F1 Unlimited Ammo F2 Unlimited Suppressor F3 Triggerbot ( Doesn't work from super high range. Sniper etc. Quite usefull for oneshot hs rifles when sneaking though. ) F4 +10.000 GMP F5 +100.000 GMP
CPP Code: #define _CRT_SECURE_NO_WARNINGS #include <Windows.h> #include <iostream> #include <string> using namespace std; #define QWORD UINT64 unsigned long getMilliseconds(){ SYSTEMTIME st; GetSystemTime(&st); return st.wMilliseconds + st.wSecond * 1000 + st.wMinute * 60 * 1000 + st.wHour * 60 * 60 * 1000; } char bcSuppresserPatch[] = "\x90\x90\x90\x90"; char bcAmmoPatch[] = "\x90\x90\x90\x90\x90"; void ExchByte(void* pDst, void* pSrc, int iSize){ DWORD Junk; VirtualProtect(pDst, iSize, PAGE_EXECUTE_READWRITE, &Junk); char * bcOldMem = new char[iSize]; memcpy(bcOldMem, pDst, iSize); memcpy(pDst, pSrc, iSize); memcpy(pSrc, bcOldMem, iSize); } class CEntity{ public: WORD GetTargetInCrosshair(){ // Works under all conditions return *(WORD*)(*(char**)(*(char**)((char*)this + 0x48) + 0xE0) + 0x5AC); } }; enum TargetType{ None = 0, Enemy = 1, Ally = 2 }; TargetType TargetShootableBy(CEntity * Player, WORD TargetID){ static int(__fastcall*fpTargetShootCheck)(void *, DWORD) = (int(__fastcall*)(void *, DWORD))((QWORD)GetModuleHandleA("mgsvtpp.exe") + 0x3D47F10); if (TargetID == 0xFFFF) return TargetType::None; return (TargetType)fpTargetShootCheck(Player, TargetID); } DWORD WINAPI main(LPVOID lpParam) { AllocConsole(); freopen("conin$", "r", stdin); freopen("conout$", "w", stdout); long KeyLock = 0; void * bcSuppressor = (QWORD*)((QWORD)GetModuleHandleA("mgsvtpp.exe") + 0x3C54B53); void * bcAmmo = (QWORD*)((QWORD)GetModuleHandleA("mgsvtpp.exe") + 0x3C546FF); DWORD * pGMP = (DWORD*)((QWORD)GetModuleHandleA("mgsvtpp.exe") + 0x2AC9C98); QWORD * pBase = (QWORD*)((QWORD)GetModuleHandleA("mgsvtpp.exe") + 0x2963210); bool bTriggerbotOn = false; bool bMessageSaidOnce = false; while (true){ if (*((QWORD*)pBase) == 0 || *(QWORD*)(*pBase + 0x308) == 0 || *(QWORD*)(*(QWORD*)(*pBase + 0x308) + 0x10) == 0){ if (!bMessageSaidOnce && (bMessageSaidOnce=true)) cout << "Waiting for the player to spawn." << endl; continue; } bMessageSaidOnce = false; CEntity * LocalPlayer = (CEntity*)*(QWORD*)(*(QWORD*)(*pBase + 0x308) + 0x10); if (bTriggerbotOn && (GetAsyncKeyState(VK_RBUTTON) & 0x8000)){ if (TargetShootableBy(LocalPlayer, LocalPlayer->GetTargetInCrosshair()) == TargetType::Enemy){ mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL); Sleep(5); mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL); } } if (KeyLock + 250 < getMilliseconds()){ KeyLock = getMilliseconds(); if (GetAsyncKeyState(VK_F1) & 0x8000){ ExchByte(bcAmmo, bcAmmoPatch, 5); cout << "Unlimited Ammo: "; cout << ((bcAmmoPatch[0] == '\x90') ? "OFF." : "ON.") << endl; } else if(GetAsyncKeyState(VK_F2) & 0x8000){ ExchByte(bcSuppressor, bcSuppresserPatch, 4); cout << "Unlimited Suppressor "; cout << ((bcSuppresserPatch[0] == '\x90') ? "OFF." : "ON.") << endl; } else if (GetAsyncKeyState(VK_F3) & 0x8000){ bTriggerbotOn = !bTriggerbotOn; cout << "Triggerbot: " << (bTriggerbotOn ? "ON" : "OFF") << endl; } else if (GetAsyncKeyState(VK_F4) & 0x8000){ cout << "Added 10 000 GMP." << endl; *pGMP += 10 * 1000; } else if (GetAsyncKeyState(VK_F5) & 0x8000){ cout << "Added 100 000 GMP." << endl; *pGMP += 100 * 1000; } else{ KeyLock = 0; } } } return 0; } int WINAPI DllMain( HINSTANCE hInstance2, DWORD fdwReason, LPVOID lpvReserved ) { DisableThreadLibraryCalls(hInstance2); if (fdwReason == DLL_PROCESS_ATTACH) { CreateThread(NULL, 0, &main, NULL, 0, NULL); } return 1; }
Download: Metal Gear Solid V Multihack
|