| 
					Join Date: Aug 2007 Posts: 1957 | Kategorie: Other FPS Games Entwickler: can1357
 
 Beschreibung:
 F1 Infinite Ammo
 F2 Infinite Suppressor
 F3 Infinite Fulton Extraction
 F4 Instant Health Refill
 F5 Perfect Aim (No spread, recoil, breath)
 F6 Triggerbot( Doesn't work from super long range. Sniper etc. Quite usefull for oneshot hs rifles when sneaking though. )
 F7 +10.000 GMP
 F8 +100.000 GMP
 F9 +10.000 Basic Resources
 F10 +100.000 Basic Resources
 F11 Double all resources
 
 
 Includes.h
 
 TEXT Code:  #pragma once#define _CRT_SECURE_NO_WARNINGS#include <Windows.h>#include <iostream>#include <string> #include <d3dx9.h>#include <d3d9.h>  #pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib") using namespace std; #define QWORD UINT64 struct ResourceManager{    int ResourceArray[0xFFFF];     int GetResource(int iIndex){        return ResourceArray[iIndex] >> 1;    }    int SetResource(int iIndex, int iAmount){        return ResourceArray[iIndex] = iAmount << 1;    }    int MultiplyResource(int iIndex, int iMultiplier){        return ResourceArray[iIndex] *= iMultiplier;    }    int AddResource(int iIndex, int iAmount){        return ResourceArray[iIndex] += iAmount << 1;    }};  enum TargetType{    None = 0,    Enemy = 1,    Ally = 2};  struct CWeapon{    WORD Ammo;    WORD Unknown;    BYTE Suppressor; // 0xF - 0x0    void SetSuppressor(float SuppressorVal){        Suppressor = max((BYTE)((float)0xF * SuppressorVal),0);    }    float GetSuppressor(){        return (float)Suppressor / (float)0xF;    }    void SetAmmo(WORD w){        Ammo = max(w,0);    }    WORD GetAmmo(){        return Ammo;    }}; class CEquipmentList{public:    CWeapon * GetFultonDevice(){        return (CWeapon*)((QWORD)this + 0x48A);    }    CWeapon * GetWeapon(int WepId){        return (CWeapon*)((QWORD)this + 0x3D8 + 0xC * WepId);    }};  class CGeneralInformation{public:    D3DXVECTOR3 * GetFootPosition(){        return (D3DXVECTOR3*)((char*)this + 0xE0);    }    D3DXVECTOR3 * GetCameraPosition1(){ // ?        return (D3DXVECTOR3*)((char*)this + 0x170);    }    D3DXVECTOR3 * GetCameraPosition2(){ // ?        return (D3DXVECTOR3*)((char*)this + 0x1B0);    }    D3DXVECTOR2 * GetAngle1(){ // ?        return (D3DXVECTOR2*)((char*)this + 0x168);    }    D3DXVECTOR2 * GetAngle2(){ // ?        return (D3DXVECTOR2*)((char*)this + 0x160);    }    float * GetCurrentHealth(){        return (float*)((char*)this + 0x3C0);    }    float * GetMaxHealth(){        return (float*)((char*)this + 0x3C4);    }}; class CCurrentWeaponInformation{public:    // breath, recoil, spread, probably aim assist}; class CEntity{public:    WORD GetTargetInCrosshair(){ // Works under all conditions        return *(WORD*)(*(char**)((char*)this + 0xE0) + 0x5AC);    }    bool HasTargetInCrosshair(){        return GetTargetInCrosshair() != 0xFFFF;    }    CEquipmentList * GetEquipmentList(){        return *(CEquipmentList**)((char*)this + 0xE8);    }    CGeneralInformation * GetGeneralInformation(){        return *(CGeneralInformation**)((char*)this + 0x2A0);    }    CCurrentWeaponInformation * GetCurrentWeaponInformation(){        return *(CCurrentWeaponInformation**)((char*)this + 0x110);    }    bool IsValid(){        return this != nullptr &&                *(char**)((char*)this + 0xE0) != nullptr &&                *(char**)((char*)this + 0xE8) != nullptr &&                *(char**)((char*)this + 0x2A0) != nullptr&&                *(char**)((char*)this + 0x110) != nullptr;    }}; class CLocalPlayer{public:    CEntity * GetEntity(){        return *(CEntity**)((char*)this + 0x48);    }    bool IsValid(){        return this != nullptr && GetEntity()->IsValid();    }};   class CGameModule{private:    QWORD ModuleHandle;public:    void * m_pSuppressor = nullptr;    void * m_pAmmo = nullptr;    void * m_pBreathRecoil = nullptr;    void * m_pSpread = nullptr;    DWORD * m_pGMP = nullptr;    ResourceManager * m_pResourceMgr;    char * m_pFultonTemp1;    char * m_pFultonTemp2;     TargetType (__fastcall*CompareTeams) (void * LocalPlayer, DWORD EntityID);     ResourceManager * GetResouceManager(){        return m_pResourceMgr;    }     void SetFultonExtractionCount(char chFultonCount){        GetLocalPlayer()->GetEntity()->GetEquipmentList()->GetFultonDevice()->SetAmmo(chFultonCount);        *m_pFultonTemp1 = chFultonCount;        *m_pFultonTemp2 = chFultonCount;    }     char GetFultonExtractionCount(){        return GetLocalPlayer()->GetEntity()->GetEquipmentList()->GetFultonDevice()->GetAmmo();    }     DWORD GetGmp(){        return *m_pGMP;    }    void SetGmp(DWORD iGMP){        *m_pGMP = iGMP;    }    void AddGmp(DWORD iGMP){        *m_pGMP += iGMP;    }    void MultiplyGmp(float iMultiplier){        *m_pGMP *= iMultiplier;    }    DWORD * GetGmpPointer(){        return m_pGMP;    }     CLocalPlayer * GetLocalPlayer(){        // dynamic        // [ule+2963210]+308]+10        QWORD  pLocalPlayer = *(QWORD*)(ModuleHandle + 0x2963210);        if (pLocalPlayer == 0) return nullptr;        pLocalPlayer = *(QWORD*)(pLocalPlayer + 0x308);        if (pLocalPlayer == 0) return nullptr;        pLocalPlayer = *(QWORD*)(pLocalPlayer + 0x10);        return (CLocalPlayer*)pLocalPlayer;    }     void PatchAntiDebugger(){        DWORD Junk;         void * pNtdllProtect = (char*)ModuleHandle + 0x4F47554;        void * pDbgUiRemoteBreakin = GetProcAddress(GetModuleHandle("ntdll.dll"), "DbgUiRemoteBreakin");        void * pDbgUiIssueRemoteBreakin = GetProcAddress(GetModuleHandle("ntdll.dll"), "DbgUiIssueRemoteBreakin");         static char * arNtdllProtect = "\x90\x90";        static char * arDbgUiRemoteBreakin = "\x48\x83\xEC\x28\x65\x48\x8B\x04\x25\x30\x00\x00\x00\x48\x8B\x48\x60\x80\x79\x02\x00\x75\x0A\xF6\x04\x25\xD4\x02\xFE\x7F\x02\x74\x19\x65\x48\x8B\x04\x25\x30\x00\x00\x00\xF6\x80\xEE\x17\x00\x00\x20\x75\x07\xE8\x88\x86\xF5\xFF\xEB\x00\x33\xC9\xE8\x2F\xEA\xF4\xFF\xCC";        static char * arDbgUiIssueRemoteBreakin = "\x4C\x8B\xDC\x53\x48\x83\xEC\x70\x49\x8D\x43\xE8\x45\x33\xC9\x33\xD2\x49\x89\x43\xD8\x49\x8D\x43\x10\x45\x8D\x41\x02\x49\x89\x43\xD0\x49\x83\x63\xC8\x00\x48\x8D\x05\xC3\x11\x03\x00\x49\x89\x43\xC0\x49\x83\x63\xB8\x00\x49\xC7\x43\xB0\x00\x40\x00\x00\x49\x83\x63\xA8\x00\xE8\xD8\x75\xF5\xFF\x8B\xD8\x85\xC0\x78\x0D\x48\x8B\x8C\x24\x88\x00\x00\x00\xE8\x65\xA6\xF8\xFF\x8B\xC3\x48\x83\xC4\x70\x5B\xC3";         static int szNtdllProtect = 2;        static int szDbgUiIssueRemoteBreakin = 99;        static int szDbgUiRemoteBreakin = 66;         VirtualProtect(pNtdllProtect, szNtdllProtect, PAGE_EXECUTE_READWRITE, &Junk);        VirtualProtect(pDbgUiRemoteBreakin, szDbgUiRemoteBreakin, PAGE_EXECUTE_READWRITE, &Junk);        VirtualProtect(pDbgUiIssueRemoteBreakin, szDbgUiIssueRemoteBreakin, PAGE_EXECUTE_READWRITE, &Junk);         memcpy(pNtdllProtect, arNtdllProtect, szNtdllProtect);        memcpy(pDbgUiRemoteBreakin, arDbgUiRemoteBreakin, szDbgUiRemoteBreakin);        memcpy(pDbgUiIssueRemoteBreakin, arDbgUiIssueRemoteBreakin, szDbgUiIssueRemoteBreakin);    }      CGameModule(QWORD ModuleHandle){        this->ModuleHandle = ModuleHandle;         CompareTeams = (TargetType(__fastcall*)(void *, DWORD))(ModuleHandle + 0x3D47F10);        m_pResourceMgr = (ResourceManager*)(ModuleHandle + 0x2ad713c);         m_pSuppressor = (QWORD*)(ModuleHandle + 0x3C54B53);        m_pAmmo = (QWORD*)(ModuleHandle + 0x3C546FF);        m_pBreathRecoil = (QWORD*)(ModuleHandle + 0x3D4D861);        m_pSpread = (QWORD*)(ModuleHandle + 0x3D4B945);         m_pGMP = (DWORD*)(ModuleHandle + 0x2AC9C98);        m_pFultonTemp1 = (char*)(ModuleHandle + 0x2940CAA);        m_pFultonTemp2 = (char*)(ModuleHandle + 0x2AC752A);    }} 
 main.cpp
 
 TEXT Code:  #include "Includes.h" unsigned long getMilliseconds(){    SYSTEMTIME st;    GetSystemTime(&st);    return st.wMilliseconds + st.wSecond * 1000 + st.wMinute * 60 * 1000 + st.wHour * 60 * 60 * 1000;}   char arSuppresserPatch[] = "\x90\x90\x90\x90";char arAmmoPatch[] = "\x90\x90\x90\x90\x90"; char arBreathRecoilPatch[] = "\x90\x90\x90\x90\x90\x90\x90";char arSpreadPatch[] = "\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);    delete[] bcOldMem;} CGameModule * pEngine; bool bTriggerbotOn = false;bool bMessageSaidOnce = false;bool bLockExtractionCount = false;bool bInfiniteHealth = false;char chFultonCount = 0x0; void PrintHelp(){    cout << "Hotkeys:" << endl;    cout << "F1  => Toggle Infinite Ammo" << endl;    cout << "F2  => Toggle Infinite Suppressor" << endl;    cout << "F3  => Toggle Infinite Fulton Extraction" << endl;    cout << "F4  => Toggle Instant Health Refill" << endl;    cout << "F5  => Toggle Perfect Aim" << endl;    cout << "F6  => Triggerbot" << endl;    cout << "F7  => +10.000 GMP" << endl;    cout << "F8  => +100.000 GMP" << endl;    cout << "F9  => +10.000 Basic Resources" << endl;    cout << "F10 => +100.000 Basic Resources" << endl;    cout << "F11 => All resources x 2" << endl;} DWORD WINAPI main(LPVOID lpParam){     AllocConsole();        freopen("conin$", "r", stdin);     freopen("conout$", "w", stdout);     long KeyLock = 0;      pEngine = new CGameModule((QWORD)GetModuleHandleA("mgsvtpp.exe"));    pEngine->PatchAntiDebugger();      PrintHelp();     while (true){        if (!pEngine->GetLocalPlayer()->IsValid()){            if (!bMessageSaidOnce && (bMessageSaidOnce = true))                cout << "Waiting for the player to spawn." << endl;            Sleep(100);            continue;        }        bMessageSaidOnce = false;         if (bLockExtractionCount){            if (chFultonCount > pEngine->GetFultonExtractionCount()){                pEngine->SetFultonExtractionCount(chFultonCount);            }            chFultonCount = pEngine->GetFultonExtractionCount();        }        else chFultonCount = 0x0;         if (bTriggerbotOn && (GetAsyncKeyState(VK_RBUTTON) & 0x8000)){            if (pEngine->GetLocalPlayer()->GetEntity()->HasTargetInCrosshair() && pEngine->CompareTeams(pEngine->GetLocalPlayer(), pEngine->GetLocalPlayer()->GetEntity()->GetTargetInCrosshair()) == TargetType::Enemy){                Sleep(25);                mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);                Sleep(5);                mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);            }        }        if (bInfiniteHealth){            *pEngine->GetLocalPlayer()->GetEntity()->GetGeneralInformation()->GetCurrentHealth() = *pEngine->GetLocalPlayer()->GetEntity()->GetGeneralInformation()->GetMaxHealth();        }         if (KeyLock + 250 < getMilliseconds()){            KeyLock = getMilliseconds();            if (GetAsyncKeyState(VK_F1) & 0x8000){                ExchByte(pEngine->m_pAmmo, arAmmoPatch, 5);                cout << "Infinite Ammo: ";                cout << ((arAmmoPatch[0] == '\x90') ? "OFF." : "ON.") << endl;            }            else if(GetAsyncKeyState(VK_F2) & 0x8000){                ExchByte(pEngine->m_pSuppressor, arSuppresserPatch, 4);                cout << "Infinite Suppressor: ";                cout << ((arSuppresserPatch[0] == '\x90') ? "OFF." : "ON.") << endl;            }            else if (GetAsyncKeyState(VK_F3) & 0x8000){                bLockExtractionCount = !bLockExtractionCount;                cout << "Infinite Fulton Extraction: " << (bLockExtractionCount ? "ON" : "OFF") << endl;            }            else if (GetAsyncKeyState(VK_F4) & 0x8000){                bInfiniteHealth = !bInfiniteHealth;                cout << "Instant Health Refill: " << (bInfiniteHealth ? "ON" : "OFF") << endl;            }            else if (GetAsyncKeyState(VK_F5) & 0x8000){                cout << "Perfect Aim: ";                 ExchByte(pEngine->m_pBreathRecoil, arBreathRecoilPatch, 7);                ExchByte(pEngine->m_pSpread, arSpreadPatch, 5);                cout << ((arSpreadPatch[0] == '\x90') ? "OFF." : "ON.") << endl;            }            else if (GetAsyncKeyState(VK_F6) & 0x8000){                bTriggerbotOn = !bTriggerbotOn;                cout << "Triggerbot: " << (bTriggerbotOn ? "ON" : "OFF") << endl;            }            else if (GetAsyncKeyState(VK_F7) & 0x8000){                cout << "Added 10.000 GMP" << endl;                pEngine->AddGmp(10 * 1000);            }            else if (GetAsyncKeyState(VK_F8) & 0x8000){                cout << "Added 100.000 GMP" << endl;                pEngine->AddGmp(100 * 1000);            }            else if (GetAsyncKeyState(VK_F9) & 0x8000){                cout << "Added 10.000 Basic Resources" << endl;                for (int i = 0; i < 5; i++)                    pEngine->GetResouceManager()->AddResource(i, 10 * 1000);            }            else if (GetAsyncKeyState(VK_F10) & 0x8000){                cout << "Added 100.000 Basic Resources" << endl;                for (int i = 0; i < 5; i++)                    pEngine->GetResouceManager()->AddResource(i, 100 * 1000);            }            else if (GetAsyncKeyState(VK_F11) & 0x8000){                cout << "All Resources multiplied by 2" << endl;                for (int i = 0; i <= 50; i++)                    pEngine->GetResouceManager()->MultiplyResource(i, 2);            }            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 V2
 |