Igi 2 Trainer Unlimited Health And Ammo Extra Quality

g++ IGI2_Trainer.cpp -o IGI2_Trainer.exe -O2 -static

Then right-click the .exe → Run as Administrator.


Press the designated keys:

For those unaware, Project IGI 2: Covert Strike is a classic tactical shooter known for its high difficulty and lack of mid-mission saves. A "Trainer" is a small software program that runs in the background while you play the game. It intercepts the game's memory data and allows you to modify specific variables—like your health bar or bullet count.

// IGI2_Trainer.cpp
// Compile with: g++ IGI2_Trainer.cpp -o IGI2_Trainer.exe -O2 -static
// Or use Visual Studio (Console Application, Multi-byte char set)

#include <windows.h> #include <tlhelp32.h> #include <iostream> #include <conio.h>

using namespace std;

// Memory addresses (tested for IGI2 v1.0 / no-cd exe) // If offsets differ, scan with Cheat Engine – but these work on most releases. const DWORD OFFSET_HEALTH = 0x007D2D88; // Player base + health offset const DWORD OFFSET_AMMO = 0x007D2D90; // Current ammo (for active weapon) const DWORD OFFSET_STAMINA = 0x007D2D94; // Stamina const DWORD OFFSET_OVERHEAT = 0x007D2DA0; // Overheat value igi 2 trainer unlimited health and ammo extra quality

// Process handles HANDLE hProcess = NULL; DWORD pid = 0; DWORD moduleBase = 0;

// Feature states bool healthOn = true; bool ammoOn = true; bool noReloadOn = true; bool staminaOn = true; bool overheatOn = true;

// Helper: Get PID by process name DWORD GetProcessIdByName(const char* procName) PROCESSENTRY32 entry; entry.dwSize = sizeof(PROCESSENTRY32); HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (Process32First(snapshot, &entry)) do if (_stricmp(entry.szExeFile, procName) == 0) CloseHandle(snapshot); return entry.th32ProcessID; while (Process32Next(snapshot, &entry)); CloseHandle(snapshot); return 0;

// Write memory safely bool WriteMem(DWORD address, BYTE* buffer, SIZE_T size) SIZE_T bytesWritten; return WriteProcessMemory(hProcess, (LPVOID)address, buffer, size, &bytesWritten);

// Read memory safely bool ReadMem(DWORD address, BYTE* buffer, SIZE_T size) SIZE_T bytesRead; return ReadProcessMemory(hProcess, (LPVOID)address, buffer, size, &bytesRead); g++ IGI2_Trainer

// Apply unlimited health (lock to 100) void ApplyHealth() !hProcess) return; float health = 100.0f; WriteMem(moduleBase + OFFSET_HEALTH, (BYTE*)&health, sizeof(float));

// Apply unlimited ammo (lock to 999) void ApplyAmmo() !hProcess) return; int ammo = 999; WriteMem(moduleBase + OFFSET_AMMO, (BYTE*)&ammo, sizeof(int));

// No reload: each frame force ammo high (works for all guns) void ApplyNoReload() if (!noReloadOn

// Unlimited stamina void ApplyStamina() if (!staminaOn

// No overheat void ApplyOverheat() if (!overheatOn Then right-click the

// Show status void ShowStatus() system("cls"); cout << "====================================\n"; cout << " IGI 2: Covert Strike Trainer \n"; cout << "====================================\n"; cout << "F1 - Toggle Health : " << (healthOn ? "ON " : "OFF") << "\n"; cout << "F2 - Toggle Ammo : " << (ammoOn ? "ON " : "OFF") << "\n"; cout << "F3 - Toggle No Reload: " << (noReloadOn ? "ON " : "OFF") << "\n"; cout << "F4 - Toggle Stamina : " << (staminaOn ? "ON " : "OFF") << "\n"; cout << "F5 - Toggle Overheat : " << (overheatOn ? "ON " : "OFF") << "\n"; cout << "END - Exit Trainer\n"; cout << "------------------------------------\n"; cout << "Waiting for IGI 2 (iGI2.exe)...\n";

int main() ShowStatus();

// Wait for game to start
while (pid == 0)  Base: 0x" << hex << moduleBase << "\n";
    cout << "Trainer active. Press END to quit.\n";
// Main loop
while (true) 
    if (GetAsyncKeyState(VK_F1) & 1)  healthOn = !healthOn; ShowStatus(); 
    if (GetAsyncKeyState(VK_F2) & 1)  ammoOn = !ammoOn; ShowStatus(); 
    if (GetAsyncKeyState(VK_F3) & 1)  noReloadOn = !noReloadOn; ShowStatus(); 
    if (GetAsyncKeyState(VK_F4) & 1)  staminaOn = !staminaOn; ShowStatus(); 
    if (GetAsyncKeyState(VK_F5) & 1)  overheatOn = !overheatOn; ShowStatus(); 
    if (GetAsyncKeyState(VK_END) & 1) break;
// Apply cheats each frame
    ApplyHealth();
    ApplyAmmo();
    if (noReloadOn) ApplyNoReload();
    ApplyStamina();
    ApplyOverheat();
Sleep(30); // 33ms = ~30 FPS lock
if (hProcess) CloseHandle(hProcess);
cout << "Trainer stopped.\n";
return 0;


igi 2 trainer unlimited health and ammo extra quality igi 2 trainer unlimited health and ammo extra quality igi 2 trainer unlimited health and ammo extra quality igi 2 trainer unlimited health and ammo extra quality igi 2 trainer unlimited health and ammo extra quality igi 2 trainer unlimited health and ammo extra quality