/*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>
using namespace std;
const char* STUDENT_MAIN_PATH = "C:\\Program Files (x86)\\Mythware\\极域课堂管理系统软件V6.0 2016 豪华版\\StudentMain.exe";
const char* FROZEN_WND_CLASS = "ClassScreenFrozenWnd";
#ifdef __MINGW32__
#pragma comment(linker, "-lgdi32 -luser32 -lshell32 -ladvapi32 -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 IsRunAsAdmin();
void show();
void RequestAdminPrivileges();
void SafeShowConsole(bool show);
DWORD WINAPI AsyncCaptureScreen(LPVOID lpParam);
bool SystemCaptureScreenToMem();
LRESULT CALLBACK FrozenWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
bool RegisterFrozenWndClass();
HWND CreateFullScreenFrozenWnd();
void FreezeTeacherScreen();
void RestoreTeacherScreen();
void checkGlobalKeys();
void StartTaskManager();
void StartStudentMain();
void OpenWebPage(const char* url);
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 <= 32) {
DWORD err = GetLastError();
if (err == ERROR_CANCELLED) {
cout << "用户拒绝管理员权限,部分功能可能失效!" << endl;
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);
}
}
bool SystemCaptureScreenToMem() {
EnterCriticalSection(&g_csGlobal);
if (g_hScreenBmp != NULL) {
DeleteObject(g_hScreenBmp);
g_hScreenBmp = NULL;
}
LeaveCriticalSection(&g_csGlobal);
HDC hScreenDC = GetDC(NULL);
if (hScreenDC == NULL) {
cout <<endl<< "错误:获取屏幕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 <<endl<< "错误:创建内存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 <<endl<< "错误:创建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);
EnterCriticalSection(&g_csGlobal);
g_hScreenBmp = hBmp;
LeaveCriticalSection(&g_csGlobal);
cout <<endl<< "截屏成功!内存位图分辨率:" << 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 <<endl<< "\r 即将截屏定格,倒计时:" << i << "秒" << flush;
Sleep(1000);
}
if (g_bCapturing) {
cout <<endl<< "\r 开始截屏!" << endl;
if (SystemCaptureScreenToMem()) {
EnterCriticalSection(&g_csGlobal);
g_hFrozenWnd = CreateFullScreenFrozenWnd();
LeaveCriticalSection(&g_csGlobal);
if (g_hFrozenWnd != NULL) {
isScreenFrozen = true;
cout <<endl<< "成功!画面已定格,按R键恢复!" << endl;
} else {
cout <<endl<< "错误:定格窗口创建失败!" << endl;
EnterCriticalSection(&g_csGlobal);
if (g_hScreenBmp != NULL) {
DeleteObject(g_hScreenBmp);
g_hScreenBmp = NULL;
}
LeaveCriticalSection(&g_csGlobal);
}
} else {
cout <<endl<< "错误:截屏失败,无法定格!" << endl;
}
}
g_bCapturing = false;
g_hCaptureThread = NULL;
return 0;
}
LRESULT CALLBACK FrozenWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
EnterCriticalSection(&g_csGlobal);
if (g_hScreenBmp != NULL && g_nScreenW > 0 && g_nScreenH > 0) {
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);
}
}
LeaveCriticalSection(&g_csGlobal);
EndPaint(hWnd, &ps);
return 0;
}
case WM_ERASEBKGND:
return 1;
case WM_DESTROY:
case WM_CLOSE:
return 0;
case WM_NCHITTEST:
return HTCLIENT;
default:
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
}
}
bool RegisterFrozenWndClass() {
WNDCLASSEXA wc;
memset(&wc, 0, sizeof(WNDCLASSEXA));
wc.cbSize = sizeof(WNDCLASSEXA);
wc.lpfnWndProc = FrozenWndProc;
wc.hInstance = g_hInstance;
wc.lpszClassName = FROZEN_WND_CLASS;
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
ATOM atom = RegisterClassExA(&wc);
return atom != 0;
}
HWND CreateFullScreenFrozenWnd() {
if (g_nScreenW <= 0 || g_nScreenH <= 0) {
cout <<endl<<"错误:屏幕分辨率无效!" << endl;
return NULL;
}
DWORD dwExStyle = WS_EX_TOPMOST | WS_EX_NOACTIVATE | WS_EX_LAYERED;
DWORD dwStyle = WS_POPUP | WS_VISIBLE;
HWND hWnd = CreateWindowExA(
dwExStyle,
FROZEN_WND_CLASS,
"ScreenFrozen",
dwStyle,
0, 0, g_nScreenW, g_nScreenH,
NULL, NULL, g_hInstance, NULL
);
if (hWnd != NULL) {
SetLayeredWindowAttributes(hWnd, 0, 255, LWA_ALPHA);
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
InvalidateRect(hWnd, NULL, FALSE);
UpdateWindow(hWnd);
ShowWindow(hWnd, SW_SHOWMAXIMIZED);
}
return hWnd;
}
void FreezeTeacherScreen() {
EnterCriticalSection(&g_csGlobal);
if (isScreenFrozen) {
LeaveCriticalSection(&g_csGlobal);
cout <<endl<< "提示:画面已定格,无需重复操作!" << endl;
return;
}
LeaveCriticalSection(&g_csGlobal);
if (g_bCapturing) {
cout <<endl<< "提示:截屏操作正在进行中,请稍候!" << endl;
return;
}
g_hCaptureThread = CreateThread(NULL, 0, AsyncCaptureScreen, NULL, 0, NULL);
if (g_hCaptureThread == NULL) {
cout <<endl<< "错误:创建截屏线程失败!" << endl;
return;
}
CloseHandle(g_hCaptureThread);
}
void RestoreTeacherScreen() {
EnterCriticalSection(&g_csGlobal);
if (g_bCapturing) {
g_bCapturing = false;
LeaveCriticalSection(&g_csGlobal);
cout <<endl<< "截屏操作已取消!" << endl;
return;
}
if (!isScreenFrozen) {
LeaveCriticalSection(&g_csGlobal);
cout <<endl<< "提示:画面未定格,无需恢复!" << endl;
return;
}
if (g_hFrozenWnd != NULL) {
DestroyWindow(g_hFrozenWnd);
g_hFrozenWnd = NULL;
}
if (g_hScreenBmp != NULL) {
DeleteObject(g_hScreenBmp);
g_hScreenBmp = NULL;
}
g_nScreenW = 0;
g_nScreenH = 0;
isScreenFrozen = false;
LeaveCriticalSection(&g_csGlobal);
cout <<endl<< "成功!画面已恢复实时显示!" << endl;
}
void StartTaskManager() {
system("taskmgr");
cout <<endl<< "任务管理器已启动!" << endl;
}
void show() {
cout << "=========================================================================================================" << endl;
cout << "后台全局监听中,按以下按键执行操作:\n\n";
cout << "B: 结束极域(仅控屏) | C: 结束极域(全部+禁用服务) | X: 恢复极域(已修复)"<<endl << endl;
cout << "1-9: 打开对应网页/程序 | 按ESC退出程序 | 按E定格教师端此电脑的屏幕" <<endl<< endl;
cout<<"1.打开bcoi 7.gf25051小黄主页"<<endl<<endl;
cout<<"2.显示当前系统时间 8.gf25152鼠鼠主页"<<endl<<endl; // 适配2键精简功能
cout<<"3.我的世界 9.游戏总结"<<endl<<endl;
cout<<"4.抡棒作战 Q.删掉极域!!!!!!!!!!! (需要管理员权限)"<<endl<<endl;
cout<<"5.Slowroads P:后台运行杀手(后台运行更隐蔽) | 再次按P:恢复控制台显示"<<endl<<endl;
cout<<"6.打开CMD命令提示符 ESC:退出杀手"<<endl<<endl;
cout<<"D:任务管理器 H:显示对应网页/程序"<<endl;
cout << "=========================================================================================================" << endl << endl;
}
void StartStudentMain() {
ShellExecuteA(NULL, "open", STUDENT_MAIN_PATH, NULL, NULL, SW_SHOW);
cout << endl<<"正在启动极域客户端..." << 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) & 0x8000) {
if (!keyStates[i]) {
keyStates[i] = true;
switch (i) {
case 'E':
FreezeTeacherScreen();
break;
case 'R':
RestoreTeacherScreen();
break;
case 'B':
cout <<endl<< "正在强制终止StudentMain.exe..." << endl;
system("taskkill /F /IM StudentMain.exe");
killCount++;
cout <<endl<< "B键操作完成!" << endl;
break;
case 'C':
cout <<endl<< "正在终止所有极域相关进程并禁用服务..." << endl;
system("sc stop JYService > nul 2>&1");
system("sc config JYService start= disabled > nul 2>&1");
system("taskkill /im MythwareService.exe /f > nul 2>&1");
system("taskkill /im StudentService_Proxy.exe /f > nul 2>&1");
system("taskkill /im StudentMain.exe /f > nul 2>&1");
system("taskkill /im XStudent.exe /f > nul 2>&1");
system("taskkill /im XTRudent.exe /f > nul 2>&1");
system("taskkill /im GATESRV.exe /f > nul 2>&1");
system("taskkill /im DispcapHelper.exe /f > nul 2>&1");
system("taskkill /im MasterHelper.exe /f > nul 2>&1");
system("taskkill /im ProcHelper64.exe /f > nul 2>&1");
system("taskkill /im Student.exe /f > nul 2>&1");
system("taskkill /im JYService.exe /f > nul 2>&1");
system("taskkill /im jyclass.exe /f > nul 2>&1");
cout <<endl<< "C键操作完成!(进程终止+服务禁用)" << endl;
break;
case 'Q':
cout << "正在清理极域所有进程、服务及文件夹..." << endl;
system("sc stop JYService > nul 2>&1");
system("sc config JYService start= disabled > nul 2>&1");
system("taskkill /im MythwareService.exe /f > nul 2>&1");
system("taskkill /im StudentService_Proxy.exe /f > nul 2>&1");
system("taskkill /im StudentMain.exe /f > nul 2>&1");
system("taskkill /im XStudent.exe /f > nul 2>&1");
system("taskkill /im XTRudent.exe /f > nul 2>&1");
system("taskkill /im GATESRV.exe /f > nul 2>&1");
system("taskkill /im DispcapHelper.exe /f > nul 2>&1");
system("taskkill /im MasterHelper.exe /f > nul 2>&1");
system("taskkill /im ProcHelper64.exe /f > nul 2>&1");
system("taskkill /im Student.exe /f > nul 2>&1");
system("taskkill /im JYService.exe /f > nul 2>&1");
system("taskkill /im jyclass.exe /f > nul 2>&1");
system("rmdir /s /q /y \"C:\\Program Files (x86)\\Mythware\" > nul 2>&1");
system("del /f /s /q /y \"C:\\Program Files (x86)\\Mythware\\*.*\" > nul 2>&1");
cout <<endl<< "Q键操作完成!(全量清理:进程+服务+文件夹)" << endl;
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 '2': {
cout << endl << "-----------------------------------" << endl;
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;
cout << "-----------------------------------" << endl;
} break;
case '6': {
ShellExecuteA(NULL, "open", "cmd.exe", NULL, NULL, SW_SHOW);
cout << endl << " 已打开CMD命令提示符窗口!" << endl;
} break;
case '1': case '3': case '4': case '5': case '7': case '8': case '9': {
const char* urls[] = {
"http://www.bcoi.com", "https://play.mc.js.cool/1.8/",
"https://www.dogod.io", "https://slowroads.io/",
"https://www.bcoi.cn/d/gfhd/user/507",
"https://www.bcoi.cn/d/gfhd/user/616",
"https://xg9.cn/my/4qVWxG"
};
int idx = -1;
if (i == '1') idx = 0;
else if (i == '3') idx = 1;
else if (i == '4') idx = 2;
else if (i == '5') idx = 3;
else if (i == '7') idx = 4;
else if (i == '8') idx = 5;
else if (i == '9') idx = 6;
if (idx >= 0) {
OpenWebPage(urls[idx]);
cout <<endl<< "正在打开网页:" << urls[idx] << endl;
}
} break;
default:
break;
}
}
} else {
keyStates[i] = false;
}
}
}
int main() {
InitializeCriticalSection(&g_csGlobal);
g_hInstance = GetModuleHandleA(NULL);
memset(keyStates, 0, sizeof(keyStates));
if (!RegisterFrozenWndClass()) {
MessageBoxA(NULL, "窗口类注册失败!", "错误", MB_OK | MB_ICONERROR);
DeleteCriticalSection(&g_csGlobal);
return 1;
}
bool isAdmin = IsRunAsAdmin();
if (!isAdmin) {
cout << "=====================================" << endl;
cout << " 极域工具箱V12.5Pro - DEV-C++专用版" << endl;
cout << "=====================================" << endl << endl;
cout << "检测到非管理员权限,部分功能可能受限!" << endl;
cout << "正在请求管理员权限,请在弹窗中点击【是】!" << endl << endl;
Sleep(2000);
RequestAdminPrivileges();
system("cls");
}
system("title 极域全能工具箱v12.5Pro(万能版) - 全局监听中");
system("chcp 936 > nul");
system("cls");
cout << "极域全能工具箱V12.5Pro(万能版)" << endl<<endl;
cout << "运行环境:DEV-C++5.11 | 适配Windows7/10/11" << endl << endl;
cout << (isAdmin ? "[+] 当前权限:管理员(所有功能可用)" : "[-] 当前权限:标准用户(部分功能受限)") << endl<<endl;
cout << "=========================================================================================================" << endl;
cout << "后台全局监听中,按以下按键执行操作:\n\n";
cout << "B: 结束极域(仅控屏) | C: 结束极域(全部+禁用服务) | X: 恢复极域(已修复)"<<endl << endl;
cout << "1-9: 打开对应网页/程序 | 按ESC退出程序 | 按E定格教师端此电脑的屏幕" <<endl<< endl;
cout<<"1.打开bcoi 7.gf25051小黄主页"<<endl<<endl;
cout<<"2.显示当前系统时间 8.gf25152鼠鼠主页"<<endl<<endl;
cout<<"3.我的世界 9.游戏总结"<<endl<<endl;
cout<<"4.抡棒作战 Q.删掉极域!!!!!!!!!!! (需要管理员权限)"<<endl<<endl;
cout<<"5.Slowroads P:后台运行杀手(后台运行更隐蔽) | 再次按P:恢复控制台显示"<<endl<<endl;
cout<<"6.打开CMD命令提示符 ESC:退出杀手"<<endl<<endl;
cout<<"D:任务管理器 H:显示对应网页/程序"<<endl;
cout << "=========================================================================================================" << endl;
MSG msg;
bool running = true;
while (running) {
while (PeekMessageA(&msg, NULL, 0, 0, PM_REMOVE)) {
if (msg.message == WM_QUIT) {
running = false;
break;
}
TranslateMessage(&msg);
DispatchMessageA(&msg);
}
checkGlobalKeys();
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000) running = false;
Sleep(10);
}
RestoreTeacherScreen();
UnregisterClassA(FROZEN_WND_CLASS, g_hInstance);
DeleteCriticalSection(&g_csGlobal);
cout << endl << endl;
cout <<endl<< "程序即将退出,共操作极域 " << killCount << " 次!" << endl;
cout <<endl<< "按任意键关闭窗口..." << endl;
system("pause > nul");
return 0;
}