点我下载极域工具箱v16.0Pro(马年专版)

点我下载极域工具箱v16.0ProUI(马年专版)

/*gf25051小黄原创代码专属水印*/
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <shellapi.h>
#include <tlhelp32.h>
#include <ctime>
#include <vector>
using namespace std;

#ifndef KEY_WOW64_64KEY
#define KEY_WOW64_64KEY 0x0100
#endif
#define KEY_STATE_PRESSED 0x8000
#define SHELLEXECUTE_FAILURE_THRESHOLD 32
#define CONSOLE_CODE_PAGE 65001

const char* STUDENT_MAIN_PATH = "C:\\Program Files (x86)\\Mythware\\极域课堂管理系统软件V6.0 2016 豪华版\\StudentMain.exe";
const char* FROZEN_WND_CLASS = "ClassScreenFrozenWnd";
const char* ALLOWED_DOMAIN = "https://www.bcoi.cn/";

const char* CAST_WND_CLASSES[] = {
    "ScreenRenderWin",
    "TPlayerWindow",
    "TClassScreenForm"
};
const int CAST_WND_COUNT = sizeof(CAST_WND_CLASSES) / sizeof(CAST_WND_CLASSES[0]);

#ifdef __MINGW32__
#pragma comment(linker, "-ladvapi32 -lsetupapi -lgdi32 -luser32 -lshell32 -lole32 -lkernel32 -lpsapi")
#endif

int killCount = 0;
bool keyStates[256];
bool isScreenFrozen = false;
HWND g_hFrozenWnd = NULL;
HINSTANCE g_hInstance = NULL;
HBITMAP g_hScreenBmp = NULL;
int g_nScreenW = 0;
int g_nScreenH = 0;
HANDLE g_hCaptureThread = NULL;
bool g_bCapturing = false;
CRITICAL_SECTION g_csGlobal;

bool g_bDetectingCast = false;
HANDLE g_hCastDetectThread = NULL;

#define SAFE_ENTER_CRITICAL_SECTION() EnterCriticalSection(&g_csGlobal)
#define SAFE_LEAVE_CRITICAL_SECTION() LeaveCriticalSection(&g_csGlobal)

void KillChildProcesses(DWORD dwParentPID) {
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnapshot == INVALID_HANDLE_VALUE) return;

    PROCESSENTRY32 pe32 = {0};
    pe32.dwSize = sizeof(PROCESSENTRY32);

    if (Process32First(hSnapshot, &pe32)) {
        do {
            if (pe32.th32ParentProcessID == dwParentPID) {
                KillChildProcesses(pe32.th32ProcessID);
                
                HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pe32.th32ProcessID);
                if (hProcess) {
                    TerminateProcess(hProcess, 0);
                    CloseHandle(hProcess);
                    cout << "  已终止子进程:" << pe32.szExeFile << " (PID: " << pe32.th32ProcessID << ")" << endl;
                }
            }
        } while (Process32Next(hSnapshot, &pe32));
    }
    CloseHandle(hSnapshot);
}

void KillProcessTreeByName(const char* szProcessName) {
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnapshot == INVALID_HANDLE_VALUE) {
        cout << "  创建进程快照失败,错误码:" << GetLastError() << endl;
        return;
    }

    PROCESSENTRY32 pe32 = {0};
    pe32.dwSize = sizeof(PROCESSENTRY32);

    vector<DWORD> vecTargetPIDs;
    if (Process32First(hSnapshot, &pe32)) {
        do {
            if (_stricmp(pe32.szExeFile, szProcessName) == 0) {
                vecTargetPIDs.push_back(pe32.th32ProcessID);
            }
        } while (Process32Next(hSnapshot, &pe32));
    }
    CloseHandle(hSnapshot);

    for (vector<DWORD>::iterator it = vecTargetPIDs.begin();
     it != vecTargetPIDs.end();
     ++it) {
    DWORD pid = *it;
    KillChildProcesses(pid);
    
    HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
    if (hProcess) {
        TerminateProcess(hProcess, 0);
        CloseHandle(hProcess);
        cout << "  已终止主进程:" << szProcessName << " (PID: " << pid << ")" << endl;
    } else {
        cout << "  无法打开进程(PID: " << pid << "),错误码:" << GetLastError() << endl;
    }
}

    if (vecTargetPIDs.empty()) {
        cout << "  未找到进程:" << szProcessName << endl;
    }
}

bool IsRealScreenBroadcasting() {
    for (int i = 0; i < CAST_WND_COUNT; i++) {
        HWND hCastWnd = FindWindowA(CAST_WND_CLASSES[i], NULL);
        if (hCastWnd != NULL && IsWindowVisible(hCastWnd)) {
            cout << "  检测到广播窗口:" << CAST_WND_CLASSES[i] << endl;
            return true;
        }
    }
    return false;
}

DWORD WINAPI ScreenCastDetectThread(LPVOID lpParam) {
    cout << "\n【精准广播检测已启动】仅当老师广播时自动终止StudentMain.exe!" << endl;
    cout << "【提示】再次按Z键可关闭检测\n" << endl;

    while (g_bDetectingCast) {
        if (IsRealScreenBroadcasting()) {
            cout << "\n[" << __TIME__ << "] 检测到老师正在屏幕广播!立即终止StudentMain.exe..." << endl;
            system("taskkill /F /IM StudentMain.exe > nul 2>&1");
            killCount++;
            cout << "[" << __TIME__ << "] 已终止广播进程,累计操作:" << killCount << "次\n" << endl;
            Sleep(1000);
        }
        Sleep(500);
    }

    cout << "\n【精准广播检测已关闭】\n" << endl;
    g_hCastDetectThread = NULL;
    return 0;
}

void ToggleScreenCastDetection() {
    g_bDetectingCast = !g_bDetectingCast;

    if (g_bDetectingCast) {
        if (g_hCastDetectThread == NULL) {
            g_hCastDetectThread = CreateThread(NULL, 0, ScreenCastDetectThread, NULL, 0, NULL);
            if (g_hCastDetectThread == NULL) {
                cout << "错误:创建检测线程失败!错误码:" << GetLastError() << endl;
                g_bDetectingCast = false;
            }
        }
    } else {
        if (g_hCastDetectThread != NULL) {
            WaitForSingleObject(g_hCastDetectThread, 1000);
            CloseHandle(g_hCastDetectThread);
            g_hCastDetectThread = NULL;
        }
    }
}

void CleanupGDIResources() {
    SAFE_ENTER_CRITICAL_SECTION();
    if (g_hScreenBmp != NULL) {
        DeleteObject(g_hScreenBmp);
        g_hScreenBmp = NULL;
    }
    if (g_hFrozenWnd != NULL) {
        DestroyWindow(g_hFrozenWnd);
        g_hFrozenWnd = NULL;
    }
    g_nScreenW = 0;
    g_nScreenH = 0;
    isScreenFrozen = false;
    SAFE_LEAVE_CRITICAL_SECTION();
}

LRESULT CALLBACK FrozenWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
        case WM_PAINT: {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            SAFE_ENTER_CRITICAL_SECTION();
            if (g_hScreenBmp != NULL) {
                HDC hMemDC = CreateCompatibleDC(hdc);
                if (hMemDC != NULL) {
                    HBITMAP hOldBmp = (HBITMAP)SelectObject(hMemDC, g_hScreenBmp);
                    BitBlt(hdc, 0, 0, g_nScreenW, g_nScreenH, hMemDC, 0, 0, SRCCOPY);
                    SelectObject(hMemDC, hOldBmp);
                    DeleteDC(hMemDC);
                }
            }
            SAFE_LEAVE_CRITICAL_SECTION();
            EndPaint(hWnd, &ps);
            return 0;
        }
        case WM_ERASEBKGND: return 1;
        case WM_DESTROY:
        case WM_CLOSE:
            return 0;
        
        case WM_DISPLAYCHANGE:
            SAFE_ENTER_CRITICAL_SECTION();
            g_nScreenW = LOWORD(lParam);
            g_nScreenH = HIWORD(lParam);
            if (g_hFrozenWnd != NULL) {
                SetWindowPos(g_hFrozenWnd, HWND_TOPMOST, 0, 0, g_nScreenW, g_nScreenH, SWP_NOACTIVATE);
                InvalidateRect(g_hFrozenWnd, NULL, TRUE);
            }
            SAFE_LEAVE_CRITICAL_SECTION();
            return 0;
        default: return DefWindowProcA(hWnd, uMsg, wParam, lParam);
    }
}

void UnlockUSBStorage() {
    system("chcp 65001 >nul");
    system("title 极域U盘禁用一键恢复_Win10专业版_含组策略全重置");
    system("color 0A");

    cout << "==============================================" << endl;
    cout << "          极域U盘禁用一键恢复脚本" << endl;
    cout << "          适配:Win10专业版 丨 需管理员权限" << endl;
    cout << "          含:组策略全项未配置+注册表+驱动修复" << endl;
    cout << "          执行中请勿关闭窗口,等待自动完成!" << endl;
    cout << "==============================================" << endl;
    cout << endl;

    cout << "【1/7】正在结束极域学生端进程..." << endl;
    system("taskkill /f /im StudentMain.exe >nul 2>&1");
    cout << "极域进程结束完成!" << endl;
    cout << endl;

    cout << "【2/7】正在还原USB存储驱动注册表..." << endl;
    system("reg add \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\USBSTOR\" /v Start /t REG_DWORD /d 3 /f >nul");
    system("reg add \"HKLM\\SYSTEM\\ControlSet001\\Services\\USBSTOR\" /v Start /t REG_DWORD /d 3 /f >nul");
    system("reg add \"HKLM\\SYSTEM\\ControlSet002\\Services\\USBSTOR\" /v Start /t REG_DWORD /d 3 /f >nul");
    cout << "USB驱动注册表还原完成!" << endl;
    cout << endl;

    cout << "【3/7】正在恢复极域自身USB配置..." << endl;
    system("reg add \"HKLM\\SOFTWARE\\TopDomain\\e-learningClassStandard\" /v USBEnable /t REG_DWORD /d 1 /f >nul 2>&1");
    system("reg add \"HKLM\\SOFTWARE\\TopDomain\\e-learningClassStandard\" /v USBDiskEnable /t REG_DWORD /d 1 /f >nul 2>&1");
    system("reg add \"HKCU\\SOFTWARE\\TopDomain\\e-learningClassStandard\" /v USBEnable /t REG_DWORD /d 1 /f >nul 2>&1");
    system("reg add \"HKCU\\SOFTWARE\\TopDomain\\e-learningClassStandard\" /v USBDiskEnable /t REG_DWORD /d 1 /f >nul 2>&1");
    cout << "极域配置恢复完成!" << endl;
    cout << endl;

    cout << "【4/7】正在重置组策略(所有项设为未配置)..." << endl;
    system("reg delete \"HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows\\RemovableStorageDevices\" /f >nul 2>&1");
    system("reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine\\Scripts\" /f >nul 2>&1");
    system("reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\User\\Scripts\" /f >nul 2>&1");
    cout << "组策略全项已设为【未配置】!" << endl;
    cout << endl;

    cout << "【5/7】正在修复USB驱动文件权限..." << endl;
    system("icacls \"C:\\Windows\\inf\\usbstor.inf\" /remove:d Everyone >nul 2>&1");
    system("icacls \"C:\\Windows\\inf\\usbstor.inf\" /grant SYSTEM:(R,X) Administrators:(R,X) Users:(R) /f >nul 2>&1");
    system("icacls \"C:\\Windows\\inf\\usbstor.pnf\" /remove:d Everyone >nul 2>&1");
    system("icacls \"C:\\Windows\\inf\\usbstor.pnf\" /grant SYSTEM:(R,X) Administrators:(R,X) Users:(R) /f >nul 2>&1");
    cout << "驱动文件权限修复完成!" << endl;
    cout << endl;

    cout << "【6/7】正在启动USB服务并刷新组策略..." << endl;
    system("sc config USBSTOR start= demand >nul");
    system("sc start USBSTOR >nul 2>&1");
    system("gpupdate /force >nul 2>&1");
    cout << "USB服务启动完成!组策略已强制刷新!" << endl;
    cout << endl;

    cout << "【7/7】正在扫描硬件改动,重新加载USB设备..." << endl;
    system("devcon rescan >nul 2>&1");
    cout << "硬件扫描完成!" << endl;
    cout << endl;

    cout << "==============================================" << endl;
    cout << "          所有恢复操作执行完毕!?" << endl;
    cout << "          关键说明:" << endl;
    cout << "          1. 组策略已全部设为【未配置】" << endl;
    cout << "          2. 建议重启电脑后插入U盘验证" << endl;
    cout << "          3. 若仍异常,彻底卸载极域学生端后重试" << endl;
    cout << "==============================================" << endl;
    system("title 极域V6.0 2016豪华版工具v15.0Pro(万能版)");
    system("color 0F");
    system("pause >nul");
}

void SetCustomMythwarePassword() {
    cout << endl;
    cout << "==============================================" << endl;
    cout << "         极域电子教室2016密码修改工具" << endl;
    cout << "        请确保已【管理员权限】运行本程序!" << endl;
    cout << "==============================================" << endl;
    cout << endl;

    char customPassword[100] = {0};
    cout << " 请输入你想要设置的极域新密码:";
    cin.getline(customPassword, sizeof(customPassword) - 1);
    cin.clear();
    if (strlen(customPassword) == 0) {
        cout << "  错误:密码不能为空!" << endl;
        cout << "==============================================" << endl << endl;
        system("pause >nul");
        return;
    }

    char regValue[120] = "Passwd";
    strcat(regValue, customPassword);

    char regCmd1[512] = {0};
    char regCmd2[512] = {0};
    sprintf(regCmd1, "reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\TopDomain\\e-learning Class Standard\\1.00\" /v UninstallPasswd /t REG_SZ /d %s /f >nul 2>&1", regValue);
    sprintf(regCmd2, "reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\TopDomain\\e-learning Class Standard\\1.00\" /v UninstallPasswd /t REG_SZ /d %s /f >nul 2>&1", regValue);

    system(regCmd1);
    system(regCmd2);

    cout << endl;
    cout << "  密码修改完成!新密码:" << customPassword << endl;
    cout << "  若提示拒绝访问 → 请右键以管理员身份运行本程序" << endl;
    cout << "==============================================" << endl << endl;
    system("pause >nul");
}

bool IsRunAsAdmin() {
    BOOL bIsAdmin = FALSE;
    SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
    PSID pAdministratorSid = NULL;
    if (AllocateAndInitializeSid(&NtAuthority, 2,
        SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
        0, 0, 0, 0, 0, 0, &pAdministratorSid)) {
        CheckTokenMembership(NULL, pAdministratorSid, &bIsAdmin);
        FreeSid(pAdministratorSid);
    }
    return bIsAdmin != FALSE;
}

void RequestAdminPrivileges() {
    char szPath[MAX_PATH] = {0};
    if (GetModuleFileNameA(NULL, szPath, MAX_PATH)) {
        HINSTANCE hResult = ShellExecuteA(NULL, "runas", szPath, NULL, NULL, SW_SHOWNORMAL);
        if ((INT_PTR)hResult <= SHELLEXECUTE_FAILURE_THRESHOLD) {
            DWORD err = GetLastError();
            if (err == ERROR_CANCELLED) {
                cout << "用户拒绝管理员权限,部分功能失效!" << endl;
                system("pause >nul");
            }
        } else {
            exit(0);
        }
    }
}

void SafeShowConsole(bool show) {
    HWND hwnd = GetConsoleWindow();
    if (hwnd != NULL) ShowWindow(hwnd, show ? SW_SHOW : SW_HIDE);
}

void SetConsoleWindowTopMost(bool topMost) {
    HWND hConsoleWnd = GetConsoleWindow();
    if (hConsoleWnd != NULL) {
        SetWindowPos(
            hConsoleWnd, 
            topMost ? HWND_TOPMOST : HWND_NOTOPMOST,
            0, 0, 0, 0, 
            SWP_NOMOVE | SWP_NOSIZE
        );
        cout << (topMost ? "控制台已置顶!" : "控制台取消置顶!") << endl;
    } else {
        cout << "错误:获取控制台窗口句柄失败!" << endl;
    }
}

bool SystemCaptureScreenToMem() {
    SAFE_ENTER_CRITICAL_SECTION();
    if (g_hScreenBmp != NULL) {
        DeleteObject(g_hScreenBmp);
        g_hScreenBmp = NULL;
    }
    SAFE_LEAVE_CRITICAL_SECTION();

    HDC hScreenDC = GetDC(NULL);
    if (hScreenDC == NULL) {
        cout << "错误:获取屏幕DC失败!" << endl;
        return false;
    }

    g_nScreenW = GetDeviceCaps(hScreenDC, HORZRES);
    g_nScreenH = GetDeviceCaps(hScreenDC, VERTRES);

    HDC hMemDC = CreateCompatibleDC(hScreenDC);
    if (hMemDC == NULL) {
        ReleaseDC(NULL, hScreenDC);
        cout << "错误:创建内存DC失败!" << endl;
        return false;
    }

    BITMAPINFO bmi = {0};
    bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biWidth = g_nScreenW;
    bmi.bmiHeader.biHeight = -g_nScreenH;
    bmi.bmiHeader.biPlanes = 1;
    bmi.bmiHeader.biBitCount = 32;
    bmi.bmiHeader.biCompression = BI_RGB;

    void* pBits = NULL;
    HBITMAP hBmp = CreateDIBSection(hScreenDC, &bmi, DIB_RGB_COLORS, &pBits, NULL, 0);
    if (hBmp == NULL) {
        DeleteDC(hMemDC);
        ReleaseDC(NULL, hScreenDC);
        cout << "错误:创建DIB位图失败!" << endl;
        return false;
    }

    HBITMAP hOldBmp = (HBITMAP)SelectObject(hMemDC, hBmp);
    BitBlt(hMemDC, 0, 0, g_nScreenW, g_nScreenH, hScreenDC, 0, 0, SRCCOPY);
    SelectObject(hMemDC, hOldBmp);
    DeleteDC(hMemDC);
    ReleaseDC(NULL, hScreenDC);

    SAFE_ENTER_CRITICAL_SECTION();
    g_hScreenBmp = hBmp;
    SAFE_LEAVE_CRITICAL_SECTION();

    cout << "截屏成功!分辨率:" << g_nScreenW << "x" << g_nScreenH << endl;
    return true;
}

DWORD WINAPI AsyncCaptureScreen(LPVOID lpParam) {
    g_bCapturing = true;
    for (int i = 3; i > 0 && g_bCapturing; i--) {
        cout << "\r 即将截屏定格,倒计时:" << i << "秒" << flush;
        Sleep(1000);
    }

    if (g_bCapturing) {
        cout << "\r 开始截屏!" << endl;
        if (SystemCaptureScreenToMem()) {
            SAFE_ENTER_CRITICAL_SECTION();
            WNDCLASSEXA wc = {0};
            wc.cbSize = sizeof(WNDCLASSEXA);
            wc.lpfnWndProc = FrozenWndProc;
            wc.hInstance = g_hInstance;
            wc.lpszClassName = FROZEN_WND_CLASS;
            wc.style = CS_HREDRAW | CS_VREDRAW;
            RegisterClassExA(&wc);

            g_hFrozenWnd = CreateWindowExA(
                WS_EX_TOPMOST | WS_EX_NOACTIVATE,
                FROZEN_WND_CLASS,
                "ScreenFrozen",
                WS_POPUP | WS_VISIBLE,
                0, 0, g_nScreenW, g_nScreenH,
                NULL, NULL, g_hInstance, NULL
            );
            SAFE_LEAVE_CRITICAL_SECTION();

            if (g_hFrozenWnd != NULL) {
                isScreenFrozen = true;
                cout << "成功!画面已定格,按R键恢复!" << endl;
            } else {
                cout << "错误:定格窗口创建失败!" << endl;
                UnregisterClassA(FROZEN_WND_CLASS, g_hInstance);
                CleanupGDIResources();
            }
        } else {
            cout << "错误:截屏失败!" << endl;
        }
    }
    g_bCapturing = false;
    g_hCaptureThread = NULL;
    return 0;
}

void FreezeTeacherScreen() {
    SAFE_ENTER_CRITICAL_SECTION();
    if (isScreenFrozen) {
        SAFE_LEAVE_CRITICAL_SECTION();
        cout << "提示:画面已定格!" << endl;
        return;
    }
    SAFE_LEAVE_CRITICAL_SECTION();

    if (g_bCapturing) {
        cout << "提示:截屏中,请稍候!" << endl;
        return;
    }

    if (g_hCaptureThread != NULL) {
        CloseHandle(g_hCaptureThread);
        g_hCaptureThread = NULL;
    }

    g_hCaptureThread = CreateThread(NULL, 0, AsyncCaptureScreen, NULL, 0, NULL);
    if (g_hCaptureThread == NULL) {
        cout << "错误:创建截屏线程失败!" << endl;
    }
}

void RestoreTeacherScreen() {
    SAFE_ENTER_CRITICAL_SECTION();
    if (g_bCapturing) {
        g_bCapturing = false;
        SAFE_LEAVE_CRITICAL_SECTION();
        cout << "截屏已取消!" << endl;
        return;
    }

    if (!isScreenFrozen) {
        SAFE_LEAVE_CRITICAL_SECTION();
        cout << "提示:画面未定格!" << endl;
        return;
    }
    SAFE_LEAVE_CRITICAL_SECTION();

    CleanupGDIResources();
    cout << "成功!画面已恢复!" << endl;
}

void StartTaskManager() {
    system("taskmgr");
    cout << "任务管理器已启动!" << endl;
}

void OpenCustomUrlWithFake() {
    char customUrl[512] = {0};
    cout << "\n=====================================" << endl;
    cout << "请输入要访问的网址:" << endl;
    cout << "输入后按回车,将伪装为访问" << ALLOWED_DOMAIN << endl;
    cout << "例如以下网址:"<<endl;
    cout << "https://play.mc.js.cool/1.8/"<<endl;
    cout << "https://www.dogod.io"<<endl;
    cout << "https://slowroads.io/"<<endl;
    cout << "https://xg9.cn/my/4qVWxG"<<endl;
    cout << "=====================================\n输入:";
    cin.getline(customUrl, sizeof(customUrl) - 1);
    cin.clear();

    if (strlen(customUrl) == 0) {
        cout << "错误:未输入任何网址!" << endl;
        return;
    }

    cout << "\n正在伪装访问... 目标:" << customUrl << endl;
    cout << "校园网检测:" << ALLOWED_DOMAIN << "(合法)" << endl;

    ShellExecuteA(NULL, "open", ALLOWED_DOMAIN, NULL, NULL, SW_SHOWNORMAL);
    Sleep(500);

    ShellExecuteA(NULL, "open", customUrl, NULL, NULL, SW_SHOWNORMAL);
    cout << "访问成功!若未打开,请检查网址格式(需带https/http)!" << endl;
}

void show() {
    cout << "========================================================================================================================" << endl;
    cout << "后台全局监听中,按以下按键执行操作:\n\n";
    cout << "B: 结束极域(仅控屏) | C: 结束极域(全部+禁用服务) | X: 恢复极域(已修复) | T: 解除U盘禁用"<<endl << endl;
    cout << "Z: 启停精准广播检测(仅老师广播时杀进程) | E: 定格屏幕 | R: 恢复屏幕 | M: 修改极域密码 | K: 切换控制台置顶/取消置顶" <<endl<< endl;
    cout << "1-9: 打开对应网页/程序 | 按ESC退出程序 | Y: 自定义伪装访问网址 | Q: 删除极域 | D: 任务管理器 | P: 隐藏/显示控制台" <<endl<< endl;
    cout<<"1.打开bcoi                    7.gf25051小黄主页"<<endl<<endl;
    cout<<"2.显示当前系统时间            8.gf25152鼠鼠主页"<<endl<<endl;
    cout<<"3.我的世界                    9.游戏总结"<<endl<<endl;
    cout<<"4.抡棒作战                    H: 显示按键说明"<<endl<<endl;
    cout<<"5.Slowroads                   ESC:退出杀手"<<endl<<endl;
    cout<<"6.打开CMD命令提示符"<<endl;
    cout << "========================================================================================================================" << endl;
}

void StartStudentMain() {
    ShellExecuteA(NULL, "open", STUDENT_MAIN_PATH, NULL, NULL, SW_SHOW);
    cout << "正在启动极域客户端..." << endl;
}

void OpenWebPage(const char* url) {
    ShellExecuteA(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
}

void checkGlobalKeys() {
    for (int i = 0; i < 256; i++) {
        if (GetAsyncKeyState(i) & KEY_STATE_PRESSED) {
            if (!keyStates[i]) {
                keyStates[i] = true;
                switch (i) {
                    case 'E': FreezeTeacherScreen(); break;
                    case 'R': RestoreTeacherScreen(); break;
                    case 'M': SetCustomMythwarePassword(); break;
                    case 'Z':
                        ToggleScreenCastDetection();
                        break;
                    case 'B':
                        system("taskkill /F /IM StudentMain.exe");
                        killCount++;
                        cout << "B键操作完成!仅终止了StudentMain.exe进程" << endl;
                        break;
                    case 'C':
                        cout << endl << "正在终止所有极域相关进程树并禁用服务..." << endl;
                        system("sc stop JYService > nul 2>&1");
                        system("sc config JYService start= disabled > nul 2>&1");
                        
                        cout << "1. 终止MythwareService.exe进程树:" << endl;
                        KillProcessTreeByName("MythwareService.exe");
                        
                        cout << "2. 终止StudentMain.exe进程树:" << endl;
                        KillProcessTreeByName("StudentMain.exe");
                        
                        cout << "3. 终止XStudent.exe进程树:" << endl;
                        KillProcessTreeByName("XStudent.exe");
                        
                        cout << "4. 终止JYService.exe进程树:" << endl;
                        KillProcessTreeByName("JYService.exe");
                        
                        killCount++;
                        cout << endl << "C键操作完成!(进程树终止+服务禁用)" << endl;
                        break;
                    case 'Q':
                        system("sc stop JYService > nul 2>&1 && sc delete JYService > nul 2>&1");
                        system("taskkill /f /im MythwareService.exe /im StudentMain.exe > nul 2>&1");
                        system("rmdir /s /q \"C:\\Program Files (x86)\\Mythware\" > nul 2>&1");
                        cout << "Q键操作完成!" << endl;
                        break;
                    case 'K': {
					    static bool consoleTopMost = true;
					    consoleTopMost = !consoleTopMost;
    					SetConsoleWindowTopMost(consoleTopMost);
    					break;
					}
                    case 'D': StartTaskManager(); break;
                    case 'H': show(); break;
                    case 'P': {
                        static bool consoleVisible = true;
                        consoleVisible = !consoleVisible;
                        SafeShowConsole(consoleVisible);
                    } break;
                    case 'X': StartStudentMain(); break;
                    case 'T':
                        cout << "正在执行U盘解禁..." << endl;
                        UnlockUSBStorage();
                        break;
                    case 'Y': OpenCustomUrlWithFake(); break;
                    case '2': {
                        time_t tNow = time(NULL);
                        tm* pLocalTm = localtime(&tNow);
                        char szTime[64] = {0};
                        sprintf(szTime, "%04d-%02d-%02d %02d:%02d:%02d",
                                pLocalTm->tm_year + 1900, pLocalTm->tm_mon + 1, pLocalTm->tm_mday,
                                pLocalTm->tm_hour, pLocalTm->tm_min, pLocalTm->tm_sec);
                        cout << "当前时间:" << szTime << endl;
                        break;
                    }
                    case '6':
                        ShellExecuteA(NULL, "open", "cmd.exe", NULL, NULL, SW_SHOW);
                        cout << "已打开CMD!" << endl;
                        break;
                    case '1': OpenWebPage("http://www.bcoi.com"); cout << "打开bcoi!" << endl; break;
                    case '3': OpenWebPage("https://play.mc.js.cool/1.8/"); cout << "打开我的世界!" << endl; break;
                    case '4': OpenWebPage("https://www.dogod.io"); cout << "打开抡棒作战!" << endl; break;
                    case '5': OpenWebPage("https://slowroads.io/"); cout << "打开Slowroads!" << endl; break;
                    case '7': OpenWebPage("https://www.bcoi.cn/d/gfhd/user/507"); cout << "打开小黄主页!" << endl; break;
                    case '8': OpenWebPage("https://www.bcoi.cn/d/gfhd/user/616"); cout << "打开鼠鼠主页!" << endl; break;
                    case '9': OpenWebPage("https://xg9.cn/my/4qVWxG"); cout << "打开游戏总结!" << endl; break;
                    default: break;
                }
            }
        } else {
            keyStates[i] = false;
        }
    }
}

int main() {
    InitializeCriticalSection(&g_csGlobal);
    g_hInstance = GetModuleHandleA(NULL);
    memset(keyStates, 0, sizeof(keyStates));
    g_bDetectingCast = false;
    g_hCastDetectThread = NULL;

    bool isAdmin = IsRunAsAdmin();
    if (!isAdmin) {
        cout << "检测到非管理员权限,正在请求..." << endl;
        Sleep(1000);
        RequestAdminPrivileges();
        system("cls");
    }
    system("title 极域V6.0 2016豪华版工具v16.0Pro(马年专版)");
    system("cls");

    cout << "极域V6.0 2016豪华版工具v16.0Pro(马年专版)已启动!" << endl<<endl;
    cout << (isAdmin ? "[+] 管理员权限(功能全开)" : "[-] 普通权限(功能受限)") << endl<<endl;
    cout << "[+] 注意:程序启动时默认置顶窗口!" << endl<<endl ;
    SetConsoleWindowTopMost(true);
    cout<<endl; 
    show();

    MSG msg;
    bool running = true;
    while (running) {
        while (PeekMessageA(&msg, NULL, 0, 0, PM_REMOVE)) {
            if (msg.message == WM_QUIT) running = false;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        checkGlobalKeys();
        if (GetAsyncKeyState(VK_ESCAPE) & KEY_STATE_PRESSED) running = false;
        Sleep(10);
    }

    if (g_bDetectingCast) {
        g_bDetectingCast = false;
        if (g_hCastDetectThread != NULL) {
            WaitForSingleObject(g_hCastDetectThread, 1000);
            CloseHandle(g_hCastDetectThread);
        }
    }

    RestoreTeacherScreen();
    UnregisterClassA(FROZEN_WND_CLASS, g_hInstance);

    if (g_hCaptureThread != NULL) {
        WaitForSingleObject(g_hCaptureThread, 3000);
        CloseHandle(g_hCaptureThread);
        g_hCaptureThread = NULL;
    }

    DeleteCriticalSection(&g_csGlobal);

    cout << "\n程序即将退出,共操作极域 " << killCount << " 次!" << endl;
    system("pause > nul");
    return 0;
}
/*gf25051小黄原创代码专属水印*/