Search the Community
Showing results for tags 'fake'.
-
Этот код позволяет добавлять фейковых игроков в Steam-игры через модификацию памяти. Используйте на свой риск — в мультиплеерных играх это может привести к бану! #include <iostream> #include <windows.h> #include <stdexcept> #include <string> namespace SteamHack { // Конфигурация constexpr uintptr_t STEAM_CLIENT_OFFSET = 0x6FB703; constexpr const char* STEAM_CLIENT_MODULE = "steamclient64.dll"; constexpr size_t INSTRUCTION_SIZE = 6; // Безопасное получение модуля HMODULE GetSteamClientModule() { HMODULE hModule = GetModuleHandleA(STEAM_CLIENT_MODULE); if (!hModule) { throw std::runtime_error("Failed to find steamclient64.dll module"); } return hModule; } // Проверка адреса памяти bool IsValidMemoryAddress(void* addr) { if (!addr) return false; MEMORY_BASIC_INFORMATION mbi; return VirtualQuery(addr, &mbi, sizeof(mbi)) && (mbi.Protect & (PAGE_READONLY|PAGE_READWRITE|PAGE_EXECUTE_READ|PAGE_EXECUTE_READWRITE))); } // Основная функция void AddFakePlayers(BYTE playerCount) { if (playerCount == 0) { throw std::invalid_argument("Player count cannot be zero"); } uintptr_t base = reinterpret_cast<uintptr_t>(GetSteamClientModule()); uintptr_t addr = base + STEAM_CLIENT_OFFSET; if (!IsValidMemoryAddress(reinterpret_cast<void*>(addr))) { throw std::runtime_error("Invalid memory address"); } // Новые инструкции: add edx, playerCount + оригинальные байты unsigned char newInstructions[] = { 0x83, 0xC2, playerCount, 0x03, 0x5B, 0xD0 }; // Сохраняем оригинальные байты для возможного отката static unsigned char originalInstructions[INSTRUCTION_SIZE]; memcpy(originalInstructions, reinterpret_cast<void*>(addr), INSTRUCTION_SIZE); DWORD oldProtect; if (!VirtualProtect(reinterpret_cast<void*>(addr), INSTRUCTION_SIZE, PAGE_EXECUTE_READWRITE, &oldProtect)) { throw std::runtime_error("Failed to change memory protection"); } try { memcpy(reinterpret_cast<void*>(addr), newInstructions, INSTRUCTION_SIZE); } catch (...) { // В случае ошибки восстанавливаем оригинальные байты memcpy(reinterpret_cast<void*>(addr), originalInstructions, INSTRUCTION_SIZE); VirtualProtect(reinterpret_cast<void*>(addr), INSTRUCTION_SIZE, oldProtect, &oldProtect); throw; } // Восстанавливаем защиту if (!VirtualProtect(reinterpret_cast<void*>(addr), INSTRUCTION_SIZE, oldProtect, &oldProtect)) { throw std::runtime_error("Failed to restore memory protection"); } // Для отладки std::cout « "[DEBUG] Successfully patched memory at 0x" « std::hex « addr « " to add " « std::dec « static_cast<int>(playerCount) « " fake players\n"; } // Функция для отката изменений void RestoreOriginalCode() { uintptr_t base = reinterpret_cast<uintptr_t>(GetSteamClientModule()); uintptr_t addr = base + STEAM_CLIENT_OFFSET; if (!IsValidMemoryAddress(reinterpret_cast<void*>(addr))) { throw std::runtime_error("Invalid memory address for restore"); } DWORD oldProtect; if (!VirtualProtect(reinterpret_cast<void*>(addr), INSTRUCTION_SIZE, PAGE_EXECUTE_READWRITE, &oldProtect)) { throw std::runtime_error("Failed to change memory protection for restore"); } try { memcpy(reinterpret_cast<void*>(addr), originalInstructions, INSTRUCTION_SIZE); } catch (...) { throw std::runtime_error("Failed to restore original code"); } VirtualProtect(reinterpret_cast<void*>(addr), INSTRUCTION_SIZE, oldProtect, &oldProtect); } } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { DisableThreadLibraryCalls(hModule); // Уменьшаем подозрительную активность switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: try { SteamHack::AddFakePlayers(10); // Добавляем 10 фейковых игроков } catch (const std::exception& e) { MessageBoxA(NULL, e.what(), "Steam Hack Error", MB_ICONERROR); return FALSE; } break; case DLL_PROCESS_DETACH: try { SteamHack::RestoreOriginalCode(); // Откатываем изменения при выгрузке } catch (...) { // Игнорируем ошибки при выгрузке } break; } return TRUE; } Как использовать этот улучшенный код для добавления фейковых игроков Этот код представляет собой DLL-инъекцию , которая модифицирует память `steamclient64.dll`, чтобы добавить фейковых игроков в игру. Вот пошаговая инструкция по его использованию. 1. Подготовка Что понадобится: - Компилятор C++ (Visual Studio 2022, MinGW, или другой) - Инжектор DLL (например, Cheat Engine , Process Hacker 2 , Extreme Injector ) - Игра, использующая Steam (например, CS:GO, Dota 2, Garry's Mod) - Административные права (для внедрения DLL) --- 2. Компиляция DLL 1. Создайте проект DLL в Visual Studio : - Откройте Visual Studio → Создать проект → Dynamic-Link Library (DLL) . - Вставьте улучшенный код в `main.cpp`. - Убедитесь, что выбрана конфигурация Release x64 (если игра 64-битная). 2. Настройки компиляции : - Включите многобайтовую кодировку (`Project → Properties → Configuration Properties → Advanced → Character Set → Use Multi-Byte Character Set`). - Отключите SDL checks (если есть ошибки). 3. Соберите проект ( Build → Build Solution ). - В папке `x64/Release/` появится файл `YourDllName.dll`. --- 3. Внедрение DLL в процесс игры Способ 1: Cheat Engine 1. Запустите игру и Cheat Engine . 2. В Cheat Engine: File → Open Process → выберите процесс игры (например, `csgo.exe`). 3. Перейдите в Tools → Inject DLL . 4. Выберите вашу DLL и нажмите Inject . Способ 2: Process Hacker 2 1. Запустите Process Hacker 2 от имени администратора. 2. Найдите процесс игры (например, `hl2.exe`). 3. ПКМ → Miscellaneous → Inject DLL . 4. Выберите вашу DLL и нажмите Inject . Способ 3: Extreme Injector (более скрытный) 1. Запустите Extreme Injector от имени администратора. 2. Выберите процесс игры. 3. Нажмите Add DLL и укажите путь к вашей DLL. 4. Включите Stealth Inject (если есть). 5. Нажмите Inject . --- 4. Проверка работы - Если всё прошло успешно, игра должна зарегистрировать 10 фейковых игроков (значение можно изменить в `AddFakePlayers(10)`). - Проверьте лобби или сервер, где должно отображаться больше игроков. --- 5. Дополнительные настройки Как изменить количество игроков? - В коде замените `AddFakePlayers(10)` на нужное число (например, `AddFakePlayers(50)`). Как отключить читинг? - Просто закройте игру — DLL выгрузится автоматически, и изменения откатятся (благодаря `RestoreOriginalCode` в `DLL_PROCESS_DETACH`). Как избежать бана? - Не используйте в VAC-защищённых играх (CS:GO, Dota 2) — могут забанить. - Тестируйте на оффлайн-серверах или пиратских версиях. - Меняйте сигнатуры кода , чтобы античиты не обнаружили инъекцию. --- 6. Возможные ошибки и решения | "Failed to find steamclient64.dll" | Убедитесь, что игра использует Steam. | | DLL не внедряется | Проверьте, что игра и инжектор x64 . | | Игра крашится | Возможно, код несовместим с текущей версией игры. | --- Вывод Этот код позволяет добавлять фейковых игроков в Steam-игры через модификацию памяти. ⚠️ Используйте на свой риск — в мультиплеерных играх это может привести к бану! Лучше тестировать в одиночных/пиратских версиях игр или на приватных серверах .
