Jump to content
View in the app

A better way to browse. Learn more.

DecodeHub - Reverse Engineering, Crackmes, Software & Coding

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (â‹®) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[SOURCE] Valorant Popup Bypass (Updated DNS Cache Method)

Featured Replies

You need to be compile project.

#include <windows.h>
#include <tlhelp32.h>
#include <psapi.h>
#include <winsvc.h>
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
#include <io.h>
#include <fcntl.h>
#include <conio.h>
#include <cmath>
#include <ctime>
#include <windows.h>
#include <tlhelp32.h>
#include <iostream>
#include <thread>
#include <chrono>
#include <tchar.h>
#include <windows.h>
#include <tlhelp32.h>
#include <psapi.h>
#include <winsvc.h>
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
#include <io.h>
#include <fcntl.h>
#include <conio.h>
#include <cmath>
#include <ctime>
 
using namespace std;
void Center(const std::string& text) {
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
 
    int consoleWidth = csbi.srWindow.Right - csbi.srWindow.Left + 1;
    int padding = (consoleWidth - text.size()) / 2;
 
    if (padding < 0) padding = 0;
 
    cout << string(padding, ' ') << text << endl;
}
bool IsElevated() {
    BOOL isAdmin = FALSE;
    HANDLE token = NULL;
    if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) {
        TOKEN_ELEVATION elevation;
        DWORD size = sizeof(TOKEN_ELEVATION);
        if (GetTokenInformation(token, TokenElevation, &elevation, sizeof(elevation), &size)) {
            isAdmin = elevation.TokenIsElevated;
        }
        CloseHandle(token);
    }
    return isAdmin != FALSE;
}
 
void CHECK_ADMIN() {
    if (IsElevated()) {
        // Already admin → do nothing
        return;
    }
 
    // Not admin → relaunch self as admin
    wchar_t szPath[MAX_PATH];
    GetModuleFileNameW(NULL, szPath, MAX_PATH);
 
    SHELLEXECUTEINFOW sei = { sizeof(sei) };
    sei.lpVerb = L"runas";
    sei.lpFile = szPath;
    sei.hwnd = NULL;
    sei.nShow = SW_NORMAL;
 
    if (ShellExecuteExW(&sei)) {
        // Success → child process started with admin rights
        exit(0); // kill the non-elevated instance
    }
    else {
        // User clicked "No" on UAC or error
 
        Center("[!] Failed to elevate to administrator.");
        Center("[!] Run the program as administrator manually.");
        Sleep(4000);
        exit(1);
    }
 
 
 
 
 
 
 
 
 
 
 
}
bool IsVgcRunning() {
    SC_HANDLE scManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
    if (scManager == NULL) {
        std::cerr << "OpenSCManager failed: " << GetLastError() << std::endl;
        return false;
    }
 
    SC_HANDLE service = OpenService(scManager, L"vgc", SERVICE_QUERY_STATUS);
    if (service == NULL) {
        std::cerr << "OpenService failed: " << GetLastError() << std::endl;
        CloseServiceHandle(scManager);
        return false;
    }
 
    SERVICE_STATUS_PROCESS ssStatus;
    DWORD bytesNeeded;
    if (!QueryServiceStatusEx(service, SC_STATUS_PROCESS_INFO, (LPBYTE)&ssStatus, sizeof(SERVICE_STATUS_PROCESS), &bytesNeeded)) {
        std::cerr << "QueryServiceStatusEx failed: " << GetLastError() << std::endl;
        CloseServiceHandle(service);
        CloseServiceHandle(scManager);
        return false;
    }
 
    CloseServiceHandle(service);
    CloseServiceHandle(scManager);
 
    return ssStatus.dwCurrentState == SERVICE_RUNNING;
}
bool StartVgc() {
    SC_HANDLE scManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
    if (scManager == NULL) {
        std::cerr << "OpenSCManager failed: " << GetLastError() << std::endl;
        return false;
    }
 
    SC_HANDLE service = OpenService(scManager, L"vgc", SERVICE_START);
    if (service == NULL) {
        std::cerr << "OpenService failed: " << GetLastError() << std::endl;
        CloseServiceHandle(scManager);
        return false;
    }
 
    if (!StartService(service, 0, NULL)) {
        std::cerr << "StartService failed: " << GetLastError() << std::endl;
        CloseServiceHandle(service);
        CloseServiceHandle(scManager);
        return false;
    }
 
 
    CloseServiceHandle(service);
    CloseServiceHandle(scManager);
    return true;
}
bool IsProcessRunning(const TCHAR* executableName) {
    PROCESSENTRY32 entry;
    entry.dwSize = sizeof(PROCESSENTRY32);
 
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (snapshot == INVALID_HANDLE_VALUE) return false;
 
    if (!Process32First(snapshot, &entry)) {
        CloseHandle(snapshot);
        return false;
    }
 
    do {
        if (!_tcsicmp(entry.szExeFile, executableName)) {
            CloseHandle(snapshot);
            return true;
        }
    } while (Process32Next(snapshot, &entry));
 
    CloseHandle(snapshot);
    return false;
}
 
#define PURPLE 13
#define GREEN  10
#define RED    12
#define YELLOW 14
 
void SetColor(int c) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
 
void LOGO() {
    SetColor(PURPLE);
    cout << R"(
                               ____________________________________________________________                                                               
                             |        ___      ___  __      ___       _______  ___  ___    |
                             |       |"  \    /"  |/""\    |"  |     /"     "||"  \/"  |    |
                             |        \   \  //  //    \   ||  |    (: ______) \   \  /     |
                             |         \\  \/. .//' /\  \  |:  |     \/    |    \\  \/      |
                             |          \.    ////  __'  \  \  |___  // ___)_   /\.  \      |
                             |           \\   //   /  \\  \( \_|:  \(:      "| /  \   \     |
                             |            \__/(___/    \___)\_______)\_______)|___/\___|    |
                             |                                                              |
                               ____________________________________________________________                              
)" << endl;
}
 
 
 
 
void WaitForProcessToOpen(const TCHAR* processName) {
    SetColor(YELLOW);
 
    Center("===================================================================");
    Center("[+] Waiting for VALORANT to start...");
    Center("===================================================================");
 
    // Get console width
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsole, &csbi);
 
    int consoleWidth = csbi.srWindow.Right - csbi.srWindow.Left + 1;
 
    string base = "[+] Waiting";
    int dots = 0;
 
    // Print a blank centered line where animation will be
    int animPad = (consoleWidth - (int)base.size() - 3) / 2;
    cout << endl;
    cout << string(animPad, ' ') << base << "   " << endl;
 
    // Save cursor position (this is where animation will update)
    CONSOLE_SCREEN_BUFFER_INFO posInfo;
    GetConsoleScreenBufferInfo(hConsole, &posInfo);
 
    int animX = animPad;
    int animY = posInfo.dwCursorPosition.Y - 1;  // line we just printed
 
    while (!IsProcessRunning(processName)) {
 
        // Move cursor to animation position
        COORD pos;
        pos.X = animX;
        pos.Y = animY;
        SetConsoleCursorPosition(hConsole, pos);
 
        // Print animation
        cout << base << string(dots, '.') << "   ";
 
        dots = (dots + 1) % 4;
        cout.flush();
 
        std::this_thread::sleep_for(std::chrono::milliseconds(400));
    }
 
    // When found, move cursor down and print message
    COORD endPos;
    endPos.X = 0;
    endPos.Y = animY + 2;
    SetConsoleCursorPosition(hConsole, endPos);
 
    SetColor(GREEN);
    Center("[+] VALORANT FOUND!");
    cout << endl;
}
 
 
 
void PrintASCIIArt();
void PrintColoredText(const std::wstring& text, bool animated);
 
class PopupBypass {
private:
    std::vector<DWORD> dnsCacheThreadler;
    std::vector<DWORD> svchostThreadler;
    std::vector<DWORD> askiyaAlinanThreadler;
    HANDLE hDnsCacheProcess;
    DWORD vgcPID;
    DWORD svchostPID;
    bool bypassAktif;
    bool dnsFreezeYapildi;
 
    struct ProcessCpuInfo {
        DWORD pid;
        ULONGLONG lastKernelTime;
        ULONGLONG lastUserTime;
    };
    ProcessCpuInfo vgcCpuInfo;
 
    bool HataAyiklamaHaklariniEtkinlestir() {
        HANDLE hToken;
        TOKEN_PRIVILEGES tp;
        LUID luid;
        if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
            return false;
        if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)) {
            CloseHandle(hToken);
            return false;
        }
        tp.PrivilegeCount = 1;
        tp.Privileges[0].Luid = luid;
        tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
        CloseHandle(hToken);
        return true;
    }
 
    DWORD ProsesBul(const std::wstring& prosesIsmi) {
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (hSnapshot == INVALID_HANDLE_VALUE) return 0;
 
        PROCESSENTRY32W pe;
        pe.dwSize = sizeof(pe);
        if (!Process32FirstW(hSnapshot, &pe)) {
            CloseHandle(hSnapshot);
            return 0;
        }
        do {
            std::wstring mevcutProses(pe.szExeFile);
            std::transform(mevcutProses.begin(), mevcutProses.end(), mevcutProses.begin(), ::towlower);
            std::wstring hedefProses(prosesIsmi);
            std::transform(hedefProses.begin(), hedefProses.end(), hedefProses.begin(), ::towlower);
 
            if (mevcutProses == hedefProses) {
                CloseHandle(hSnapshot);
                return pe.th32ProcessID;
            }
        } while (Process32NextW(hSnapshot, &pe));
        CloseHandle(hSnapshot);
        return 0;
    }
 
    void ValorantKapat() {
        DWORD valorantPID = ProsesBul(L"VALORANT-Win64-Shipping.exe");
        if (valorantPID != 0) {
            HANDLE hValorant = OpenProcess(PROCESS_TERMINATE, FALSE, valorantPID);
            if (hValorant) {
                TerminateProcess(hValorant, 0);
                CloseHandle(hValorant);
            }
        }
    }
 
    void KillProcessByName(const wchar_t* processName) {
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (hSnapshot == INVALID_HANDLE_VALUE) return;
 
        PROCESSENTRY32W pe;
        pe.dwSize = sizeof(pe);
        if (Process32FirstW(hSnapshot, &pe)) {
            do {
                std::wstring currentProcess(pe.szExeFile);
                std::transform(currentProcess.begin(), currentProcess.end(), currentProcess.begin(), ::towlower);
                std::wstring targetProcess(processName);
                std::transform(targetProcess.begin(), targetProcess.end(), targetProcess.begin(), ::towlower);
 
                if (currentProcess == targetProcess) {
                    HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pe.th32ProcessID);
                    if (hProcess) {
                        TerminateProcess(hProcess, 0);
                        CloseHandle(hProcess);
                    }
                }
            } while (Process32NextW(hSnapshot, &pe));
        }
        CloseHandle(hSnapshot);
    }
 
    bool ServisDurdur(const wchar_t* serviceName) {
        SC_HANDLE hSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_CONNECT);
        if (!hSCManager) return false;
 
        SC_HANDLE hService = OpenServiceW(hSCManager, serviceName, SERVICE_STOP | SERVICE_QUERY_STATUS);
        if (!hService) {
            CloseServiceHandle(hSCManager);
            return false;
        }
 
        SERVICE_STATUS_PROCESS ssp;
        DWORD dwBytesNeeded;
        if (QueryServiceStatusEx(hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&ssp, sizeof(SERVICE_STATUS_PROCESS), &dwBytesNeeded)) {
            if (ssp.dwCurrentState != SERVICE_STOPPED) {
                ControlService(hService, SERVICE_CONTROL_STOP, (LPSERVICE_STATUS)&ssp);
                for (int i = 0; i < 50; i++) {
                    Sleep(100);
                    if (QueryServiceStatusEx(hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&ssp, sizeof(SERVICE_STATUS_PROCESS), &dwBytesNeeded)) {
                        if (ssp.dwCurrentState == SERVICE_STOPPED) break;
                    }
                }
            }
        }
 
        CloseServiceHandle(hService);
        CloseServiceHandle(hSCManager);
        return true;
    }
 
    bool ServisBaslat(const wchar_t* serviceName) {
        SC_HANDLE hSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_CONNECT);
        if (!hSCManager) return false;
 
        SC_HANDLE hService = OpenServiceW(hSCManager, serviceName, SERVICE_START | SERVICE_QUERY_STATUS);
        if (!hService) {
            CloseServiceHandle(hSCManager);
            return false;
        }
 
        SERVICE_STATUS_PROCESS ssp;
        DWORD dwBytesNeeded;
        if (QueryServiceStatusEx(hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&ssp, sizeof(SERVICE_STATUS_PROCESS), &dwBytesNeeded)) {
            if (ssp.dwCurrentState == SERVICE_STOPPED) {
                StartServiceW(hService, 0, NULL);
                for (int i = 0; i < 50; i++) {
                    Sleep(100);
                    if (QueryServiceStatusEx(hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&ssp, sizeof(SERVICE_STATUS_PROCESS), &dwBytesNeeded)) {
                        if (ssp.dwCurrentState == SERVICE_RUNNING) break;
                    }
                }
            }
        }
 
        CloseServiceHandle(hService);
        CloseServiceHandle(hSCManager);
        return true;
    }
 
    void NetshKomutu(const std::wstring& komut) {
        STARTUPINFOW si = { sizeof(STARTUPINFOW) };
        PROCESS_INFORMATION pi = {};
        si.dwFlags = STARTF_USESHOWWINDOW;
        si.wShowWindow = SW_HIDE;
 
        std::wstring cmdLine = L"netsh.exe " + komut;
        std::vector<wchar_t> cmdBuffer(cmdLine.begin(), cmdLine.end());
        cmdBuffer.push_back(L'\0');
 
        CreateProcessW(nullptr, cmdBuffer.data(), nullptr, nullptr, FALSE,
            CREATE_NO_WINDOW | CREATE_NEW_CONSOLE, nullptr, nullptr, &si, &pi);
 
        if (pi.hProcess) {
            WaitForSingleObject(pi.hProcess, 2000);
            CloseHandle(pi.hProcess);
            CloseHandle(pi.hThread);
        }
    }
 
    void GuvenlikDuvariKuraliEkle(const std::wstring& kuralIsmi, const std::wstring& programYolu, bool giden) {
        std::wstringstream ss;
        ss << L"advfirewall firewall add rule name=\"" << kuralIsmi
            << L"\" dir=" << (giden ? L"out" : L"in")
            << L" action=block program=\"" << programYolu
            << L"\" enable=yes profile=any";
        NetshKomutu(ss.str());
    }
 
    void GuvenlikDuvariKuraliSil(const std::wstring& kuralIsmi) {
        std::wstringstream ss;
        ss << L"advfirewall firewall delete rule name=\"" << kuralIsmi << L"\"";
        NetshKomutu(ss.str());
    }
 
    void GuvenlikDuvariEngellemeleri() {
        std::wstring vgcYolu = L"C:\\Program Files\\Riot Vanguard\\vgc.exe";
        std::wstring vgmYolu = L"C:\\Program Files\\Riot Vanguard\\vgm.exe";
        GuvenlikDuvariKuraliEkle(L"Block vgc.exe Outbound", vgcYolu, true);
        GuvenlikDuvariKuraliEkle(L"Block vgm.exe Outbound", vgmYolu, true);
    }
 
    void GuvenlikDuvariKurallariniTemizle() {
        GuvenlikDuvariKuraliSil(L"Block vgc.exe Outbound");
        GuvenlikDuvariKuraliSil(L"Block vgc.exe Inbound");
        GuvenlikDuvariKuraliSil(L"Block vgm.exe Outbound");
    }
 
    DWORD GetServicePID(const wchar_t* serviceName) {
        SC_HANDLE hSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE);
        if (!hSCManager) return 0;
 
        SC_HANDLE hService = OpenServiceW(hSCManager, serviceName, SERVICE_QUERY_STATUS);
        if (!hService) {
            CloseServiceHandle(hSCManager);
            return 0;
        }
 
        SERVICE_STATUS_PROCESS ssp;
        DWORD dwBytesNeeded;
        if (!QueryServiceStatusEx(hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&ssp, sizeof(SERVICE_STATUS_PROCESS), &dwBytesNeeded)) {
            CloseServiceHandle(hService);
            CloseServiceHandle(hSCManager);
            return 0;
        }
 
        DWORD pid = ssp.dwProcessId;
        CloseServiceHandle(hService);
        CloseServiceHandle(hSCManager);
        return pid;
    }
 
    bool DnsCacheFreeze() {
        ServisDurdur(L"Dnscache");
        Sleep(300);
        ServisBaslat(L"Dnscache");
        Sleep(500);
 
        DWORD dnsPid = GetServicePID(L"Dnscache");
        if (dnsPid == 0) return false;
 
        hDnsCacheProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dnsPid);
        if (!hDnsCacheProcess) return false;
 
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
        if (hSnapshot == INVALID_HANDLE_VALUE) return false;
 
        THREADENTRY32 te;
        te.dwSize = sizeof(THREADENTRY32);
        dnsCacheThreadler.clear();
 
        if (Thread32First(hSnapshot, &te)) {
            do {
                if (te.th32OwnerProcessID == dnsPid) {
                    HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, te.th32ThreadID);
                    if (hThread) {
                        SuspendThread(hThread);
                        dnsCacheThreadler.push_back(te.th32ThreadID);
                        CloseHandle(hThread);
                    }
                }
            } while (Thread32Next(hSnapshot, &te));
        }
        CloseHandle(hSnapshot);
 
        dnsFreezeYapildi = !dnsCacheThreadler.empty();
        return dnsFreezeYapildi;
    }
 
    void DnsCacheUnfreeze() {
        for (DWORD threadID : dnsCacheThreadler) {
            HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, threadID);
            if (hThread) {
                ResumeThread(hThread);
                CloseHandle(hThread);
            }
        }
        dnsCacheThreadler.clear();
 
        if (hDnsCacheProcess) {
            CloseHandle(hDnsCacheProcess);
            hDnsCacheProcess = NULL;
        }
        dnsFreezeYapildi = false;
    }
 
    bool SvchostSuspend() {
        DWORD dnsServicePID = GetServicePID(L"Dnscache");
        if (dnsServicePID == 0) return false;
 
        svchostThreadler.clear();
        bool basarili = false;
 
        HANDLE hSnapshotThread = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
        if (hSnapshotThread != INVALID_HANDLE_VALUE) {
            THREADENTRY32 te;
            te.dwSize = sizeof(THREADENTRY32);
 
            if (Thread32First(hSnapshotThread, &te)) {
                do {
                    if (te.th32OwnerProcessID == dnsServicePID) {
                        HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, te.th32ThreadID);
                        if (hThread) {
                            SuspendThread(hThread);
                            svchostThreadler.push_back(te.th32ThreadID);
                            basarili = true;
                            CloseHandle(hThread);
                        }
                    }
                } while (Thread32Next(hSnapshotThread, &te));
            }
            CloseHandle(hSnapshotThread);
        }
 
        if (basarili) {
            svchostPID = dnsServicePID;
        }
        return basarili;
    }
 
    void SvchostResume() {
        for (DWORD threadID : svchostThreadler) {
            HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, threadID);
            if (hThread) {
                ResumeThread(hThread);
                CloseHandle(hThread);
            }
        }
        svchostThreadler.clear();
        svchostPID = 0;
    }
 
    double GetVgcCpuUsage() {
        if (vgcPID == 0) return 0.0;
 
        HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, vgcPID);
        if (!hProcess) return 0.0;
 
        FILETIME ftCreation, ftExit, ftKernel, ftUser;
        if (!GetProcessTimes(hProcess, &ftCreation, &ftExit, &ftKernel, &ftUser)) {
            CloseHandle(hProcess);
            return 0.0;
        }
 
        ULARGE_INTEGER kernel, user;
        kernel.LowPart = ftKernel.dwLowDateTime;
        kernel.HighPart = ftKernel.dwHighDateTime;
        user.LowPart = ftUser.dwLowDateTime;
        user.HighPart = ftUser.dwHighDateTime;
 
        ULONGLONG currentTime = kernel.QuadPart + user.QuadPart;
        double cpuUsage = 0.0;
 
        if (vgcCpuInfo.lastKernelTime != 0) {
            ULONGLONG timeDiff = currentTime - (vgcCpuInfo.lastKernelTime + vgcCpuInfo.lastUserTime);
            if (timeDiff > 0) {
                cpuUsage = (double)timeDiff / 100000.0;
            }
        }
 
        vgcCpuInfo.lastKernelTime = kernel.QuadPart;
        vgcCpuInfo.lastUserTime = user.QuadPart;
 
        CloseHandle(hProcess);
        return cpuUsage;
    }
 
    void VgcThreadleriniAskiyaAl() {
        if (vgcPID == 0) {
            vgcPID = ProsesBul(L"vgc.exe");
            if (vgcPID == 0) return;
        }
 
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
        if (hSnapshot == INVALID_HANDLE_VALUE) return;
 
        THREADENTRY32 te;
        te.dwSize = sizeof(THREADENTRY32);
        std::vector<DWORD> yeniThreadler;
 
        if (Thread32First(hSnapshot, &te)) {
            do {
                if (te.th32OwnerProcessID == vgcPID) {
                    bool zatenVar = false;
                    for (DWORD tid : askiyaAlinanThreadler) {
                        if (tid == te.th32ThreadID) {
                            zatenVar = true;
                            break;
                        }
                    }
                    if (!zatenVar) {
                        HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, te.th32ThreadID);
                        if (hThread) {
                            SuspendThread(hThread);
                            yeniThreadler.push_back(te.th32ThreadID);
                            CloseHandle(hThread);
                        }
                    }
                }
            } while (Thread32Next(hSnapshot, &te));
        }
        CloseHandle(hSnapshot);
 
        if (!yeniThreadler.empty()) {
            askiyaAlinanThreadler.insert(askiyaAlinanThreadler.end(), yeniThreadler.begin(), yeniThreadler.end());
        }
    }
 
    void VgcThreadleriniDevamEttir() {
        for (DWORD threadID : askiyaAlinanThreadler) {
            HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME | THREAD_SET_INFORMATION, FALSE, threadID);
            if (hThread) {
                SetThreadPriority(hThread, THREAD_PRIORITY_NORMAL);
                ResumeThread(hThread);
                CloseHandle(hThread);
            }
        }
        askiyaAlinanThreadler.clear();
 
        if (vgcPID != 0) {
            HANDLE hVgc = OpenProcess(PROCESS_SET_INFORMATION | PROCESS_QUERY_INFORMATION, FALSE, vgcPID);
            if (hVgc) {
                SetPriorityClass(hVgc, NORMAL_PRIORITY_CLASS);
                DWORD_PTR processAffinityMask;
                DWORD_PTR systemAffinityMask;
                if (GetProcessAffinityMask(hVgc, &processAffinityMask, &systemAffinityMask)) {
                    SetProcessAffinityMask(hVgc, systemAffinityMask);
                }
                SIZE_T minWorkingSet = -1;
                SIZE_T maxWorkingSet = -1;
                SetProcessWorkingSetSize(hVgc, minWorkingSet, maxWorkingSet);
                CloseHandle(hVgc);
            }
        }
    }
 
    static DWORD WINAPI PopupBypassThread(LPVOID lpParam) {
        PopupBypass* self = (PopupBypass*)lpParam;
        self->PopupBypassRutini();
        return 0;
    }
 
    void PopupBypassRutini() {
        system("cls");
        PrintASCIIArt();
        std::wcout << L"\n";
        std::wcout << L"1. Popup Bypass\n";
        std::wcout << L"2. Safe Exit\n";
        std::wcout << L"3. STOP BYPASS\n\n";
        std::wcout << L"Enter your choice : \n\n";
 
        PrintColoredText(L"[*] Bypass started.\n", true);
        PrintColoredText(L"[*] Please open the game…\n", true);
 
        while (ProsesBul(L"VALORANT-Win64-Shipping.exe") == 0) {
            if (!bypassAktif) return;
            Sleep(500);
        }
        PrintColoredText(L"[+] Game detected!\n", true);
 
        PrintColoredText(L"[*] Waiting 8 seconds…\n", true);
        for (int i = 0; i < 80 && bypassAktif; i++) {
            Sleep(100);
        }
        if (!bypassAktif) return;
 
        vgcPID = ProsesBul(L"vgc.exe");
        if (vgcPID == 0) {
            PrintColoredText(L"[*] Waiting for VGC..\n", true);
            for (int i = 0; i < 10 && vgcPID == 0 && bypassAktif; i++) {
                Sleep(1000);
                vgcPID = ProsesBul(L"vgc.exe");
            }
        }
        if (!bypassAktif || vgcPID == 0) {
            PrintColoredText(L"[-] VGC not found!\n", true);
            return;
        }
 
        vgcCpuInfo.lastKernelTime = 0;
        vgcCpuInfo.lastUserTime = 0;
 
        PrintColoredText(L"[*] VGC CPU usage is being monitored…\n", true);
        bool cpuSpikeDetected = false;
        while (!cpuSpikeDetected && bypassAktif) {
            double cpu = GetVgcCpuUsage();
            if (cpu >= 0.1) {
                cpuSpikeDetected = true;
                PrintColoredText(L"[+] CPU spike detected! Applying DNS freeze…\n", true);
                break;
            }
            Sleep(10);
        }
        if (!bypassAktif) return;
 
        if (!cpuSpikeDetected) {
            PrintColoredText(L"[-] CPU spike tespit edilemedi!\n", true);
            return;
        }
 
        if (DnsCacheFreeze()) {
            PrintColoredText(L"[+]DNS freeze applied!\n", true);
        }
        else {
            PrintColoredText(L"[-] DNS freeze failed!\n", true);
            return;
        }
 
        PrintColoredText(L"[+] Bypass active! (press F8 to terminate)\n\n", true);
        std::wcout << L" Press any key to continue…\n\n";
    }
 
    void SafeExitIslemleri() {
        system("cls");
        PrintASCIIArt();
        std::wcout << L"\n";
        std::wcout << L"1. Popup Bypass\n";
        std::wcout << L"2. Safe Exit\n";
        std::wcout << L"3. Cikis\n\n";
        std::wcout << L"Seciminiz: 2\n\n";
 
        PrintColoredText(L"[*] Closing Valorant…\n", true);
        ValorantKapat();
        Sleep(2000);
 
        PrintColoredText(L"[*] Stopping bypass…\n", true);
        bypassAktif = false;
        Sleep(500);
 
        PrintColoredText(L"[*] Performing DNS unfreeze…\n", true);
        DnsCacheUnfreeze();
 
        ServisDurdur(L"Dnscache");
        Sleep(1000);
        ServisBaslat(L"Dnscache");
        Sleep(1000);
 
        dnsFreezeYapildi = false;
        vgcPID = 0;
        svchostPID = 0;
        dnsCacheThreadler.clear();
 
        PrintColoredText(L"[+] Safe exit completed!\n\n", true);
        std::wcout << L"[*] Safe exit completed! \n\n";
    }
 
    void F8Unfreeze() {
        PrintColoredText(L"\n[*] F8 pressed – Performing unfreeze…\n", true);
        DnsCacheUnfreeze();
        PrintColoredText(L"[+] Unfreeze completed!\n", true);
    }
 
public:
    PopupBypass() : hDnsCacheProcess(NULL), vgcPID(0), svchostPID(0),
        bypassAktif(false), dnsFreezeYapildi(false) {
        vgcCpuInfo.pid = 0;
        vgcCpuInfo.lastKernelTime = 0;
        vgcCpuInfo.lastUserTime = 0;
    }
 
    ~PopupBypass() {
        bypassAktif = false;
        if (hDnsCacheProcess) {
            CloseHandle(hDnsCacheProcess);
        }
    }
 
    void BypassBaslat() {
        if (bypassAktif) {
            PrintColoredText(L"[-] Bypass is already active!\n", true);
            return;
        }
 
        HataAyiklamaHaklariniEtkinlestir();
        bypassAktif = true;
        CreateThread(NULL, 0, PopupBypassThread, this, 0, NULL);
        Sleep(100);
    }
 
    void SafeExit() {
        SafeExitIslemleri();
    }
 
    void Unfreeze() {
        F8Unfreeze();
    }
 
    bool IsBypassActive() const {
        return bypassAktif;
    }
};
 
HANDLE g_hBypass = NULL;
PopupBypass* g_bypass = NULL;
 
void SetConsoleColor(int r, int g, int b) {
    std::wcout << L"\033[38;2;" << r << L";" << g << L";" << b << L"m";
}
 
void ResetConsoleColor() {
    std::wcout << L"\033[0m";
}
 
void PrintColoredText(const std::wstring& text, bool animated = false) {
    if (animated) {
        static int hue = 0;
        hue = (hue + 30) % 360;
 
        double h = hue;
        double s = 1.0;
        double v = 1.0;
 
        double c = v * s;
        double x = c * (1 - abs(fmod(h / 60.0, 2) - 1));
        double m = v - c;
 
        int r, g, b;
        if (h < 60) { r = (int)((c + m) * 255); g = (int)((x + m) * 255); b = (int)(m * 255); }
        else if (h < 120) { r = (int)((x + m) * 255); g = (int)((c + m) * 255); b = (int)(m * 255); }
        else if (h < 180) { r = (int)(m * 255); g = (int)((c + m) * 255); b = (int)((x + m) * 255); }
        else if (h < 240) { r = (int)(m * 255); g = (int)((x + m) * 255); b = (int)((c + m) * 255); }
        else if (h < 300) { r = (int)((x + m) * 255); g = (int)(m * 255); b = (int)((c + m) * 255); }
        else { r = (int)((c + m) * 255); g = (int)(m * 255); b = (int)((x + m) * 255); }
 
        SetConsoleColor(r, g, b);
        std::wcout << text;
        ResetConsoleColor();
    }
    else {
        std::wcout << text;
    }
}
 
void PrintASCIIArt() {
    SetConsoleColor(255, 0, 0);
    std::wcout << L"\n";
    std::wcout << L"                                      ░██    ░██    ░███    ░██         ░██████████ ░██    ░██  \n";
    std::wcout << L"                                      ░██    ░██   ░██░██   ░██         ░██          ░██  ░██   \n";
    std::wcout << L"                                      ░██    ░██  ░██  ░██  ░██         ░██           ░██░██    \n";
    std::wcout << L"                                      ░██    ░██ ░█████████ ░██         ░█████████     ░███    \n";
    std::wcout << L"                                       ░██  ░██  ░██    ░██ ░██         ░██           ░██░██   \n";
    std::wcout << L"                                        ░██░██   ░██    ░██ ░██         ░██          ░██  ░██  \n";
    std::wcout << L"                                         ░███    ░██    ░██ ░██████████ ░██████████ ░██    ░██ \n";
 
    '\n';
    '\n';
    wcout << L"===============================================================================================================================\n";
 
 
 
    std::wcout << L"\n";
    ResetConsoleColor();
}
 
DWORD WINAPI HotkeyThread(LPVOID lpParam) {
    bool f8Pressed = false;
    while (true) {
        if (GetAsyncKeyState(VK_F8) & 0x8000) {
            if (!f8Pressed) {
                f8Pressed = true;
                if (g_bypass) {
                    g_bypass->Unfreeze();
                }
            }
        }
        else {
            f8Pressed = false;
        }
        Sleep(100);
    }
    return 0;
}
 
DWORD WINAPI WindowSizeMonitor(LPVOID lpParam) {
    HWND hwnd = GetConsoleWindow();
    if (!hwnd) return 0;
 
    RECT targetRect;
    GetWindowRect(hwnd, &targetRect);
    int targetWidth = targetRect.right - targetRect.left;
    int targetHeight = targetRect.bottom - targetRect.top;
 
    while (true) {
        RECT currentRect;
        GetWindowRect(hwnd, &currentRect);
        int currentWidth = currentRect.right - currentRect.left;
        int currentHeight = currentRect.bottom - currentRect.top;
 
        if (currentWidth != targetWidth || currentHeight != targetHeight) {
            MoveWindow(hwnd, currentRect.left, currentRect.top, targetWidth, targetHeight, TRUE);
        }
 
        Sleep(100);
    }
    return 0;
}
 
int main() {
    HWND hwnd = GetConsoleWindow();
    if (hwnd) {
        LONG_PTR style = GetWindowLongPtr(hwnd, GWL_STYLE);
        style &= ~WS_THICKFRAME;
        style &= ~WS_MAXIMIZEBOX;
        SetWindowLongPtr(hwnd, GWL_STYLE, style);
 
        RECT rect;
        GetWindowRect(hwnd, &rect);
        int width = 1250;
        int height = 300;
        MoveWindow(hwnd, rect.left, rect.top, width, height, TRUE);
 
        HMENU hMenu = GetSystemMenu(hwnd, FALSE);
        if (hMenu) {
            EnableMenuItem(hMenu, SC_SIZE, MF_BYCOMMAND | MF_GRAYED);
            EnableMenuItem(hMenu, SC_MAXIMIZE, MF_BYCOMMAND | MF_GRAYED);
        }
    }
 
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(hOut, &csbi);
 
    COORD bufferSize;
    bufferSize.X = 100;
    bufferSize.Y = 50;
    SetConsoleScreenBufferSize(hOut, bufferSize);
 
    SMALL_RECT windowSize;
    windowSize.Left = 0;
    windowSize.Top = 0;
    windowSize.Right = 125;
    windowSize.Bottom = 30;
    SetConsoleWindowInfo(hOut, TRUE, &windowSize);
 
    DWORD dwMode = 0;
    GetConsoleMode(hOut, &dwMode);
    dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
    SetConsoleMode(hOut, dwMode);
 
    _setmode(_fileno(stdout), _O_U16TEXT);
    _setmode(_fileno(stdin), _O_U16TEXT);
 
    PopupBypass bypass;
    g_bypass = &bypass;
 
    CreateThread(NULL, 0, HotkeyThread, NULL, 0, NULL);
 
    CreateThread(NULL, 0, WindowSizeMonitor, NULL, 0, NULL);
 
    int secim = 0;
    CHECK_ADMIN();
 
    while (true) {
        system("cls");
        PrintASCIIArt();
        std::wcout << L"\n";
        std::wcout << L"1. Popup Bypass\n";
        std::wcout << L"2. Safe Exit\n";
        std::wcout << L"3. STOP BYPASS\n\n";
        std::wcout << L"Enter your choice : ";
 
        std::wcin >> secim;
 
        if (secim == 1) {
            bypass.BypassBaslat();
            _getch();
        }
        else if (secim == 2) {
            bypass.SafeExit();
            std::wcout << L"Press any key to continue..." << std::endl;
            _getch();
        }
        else if (secim == 3) {
            bypass.SafeExit();
            break;
        }
        else {
            std::wcout << L"\n[-] Invalid choice!" << std::endl;
            Sleep(1000);
        }
    }
 
    return 0;
}
  • Replies 19
  • Views 881
  • Created
  • Last Reply

Top Posters In This Topic

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Important Information

Terms of Use

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.