各位看看如何
  • 板块灌水区
  • 楼主happybob
  • 当前回复7
  • 已保存回复7
  • 发布时间2021/10/2 19:58
  • 上次更新2023/11/4 05:06:55
查看原帖
各位看看如何
332914
happybob楼主2021/10/2 19:58
#pragma GCC optimize("2")
#include <bits/stdc++.h>
#include <Windows.h> 
using namespace std; 

const int N = 1e8 + 5;
long double arr[N];
 
BOOL IsAdmin() 
{ 
	#define ACCESS_READ 1 
	#define ACCESS_WRITE 2 
	HANDLE hToken; 
	DWORD dwStatus; 
	DWORD dwAccessMask; 
	DWORD dwAccessDesired; 
	DWORD dwACLSize; 
	DWORD dwStructureSize = sizeof(PRIVILEGE_SET); 
	PACL pACL = NULL; 
	PSID psidAdmin = NULL; 
	BOOL bReturn = FALSE; 
	PRIVILEGE_SET ps; 
	GENERIC_MAPPING GenericMapping; 
	PSECURITY_DESCRIPTOR psdAdmin = NULL; 
	SID_IDENTIFIER_AUTHORITY SystemSidAuthority = SECURITY_NT_AUTHORITY; 
	
	if(!ImpersonateSelf(SecurityImpersonation)) 
	goto LeaveIsAdmin; 
	
	if (!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, FALSE, &hToken)) 
	{ 
	if (GetLastError() != ERROR_NO_TOKEN) 
	goto LeaveIsAdmin; 
	
	if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) 
	goto LeaveIsAdmin; 
	
	if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) 
	goto LeaveIsAdmin; 
	} 
	
	if (!AllocateAndInitializeSid(&SystemSidAuthority, 2, 
	SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 
	0, 0, 0, 0, 0, 0, &psidAdmin)) 
	goto LeaveIsAdmin; 
	
	psdAdmin = LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH); 
	if (psdAdmin == NULL) 
	goto LeaveIsAdmin; 
	
	if (!InitializeSecurityDescriptor(psdAdmin, 
	SECURITY_DESCRIPTOR_REVISION)) 
	goto LeaveIsAdmin; 
	
	dwACLSize = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) + 
	GetLengthSid(psidAdmin) - sizeof(DWORD); 
	
	pACL = (PACL)LocalAlloc(LPTR, dwACLSize); 
	if (pACL == NULL) 
	goto LeaveIsAdmin; 
	
	if (!InitializeAcl(pACL, dwACLSize, ACL_REVISION2)) 
	goto LeaveIsAdmin; 
	
	dwAccessMask= ACCESS_READ | ACCESS_WRITE; 
	
	if (!AddAccessAllowedAce(pACL, ACL_REVISION2, dwAccessMask, psidAdmin)) 
	goto LeaveIsAdmin; 
	
	if (!SetSecurityDescriptorDacl(psdAdmin, TRUE, pACL, FALSE)) 
	goto LeaveIsAdmin; 
	
	if(!SetSecurityDescriptorGroup(psdAdmin, psidAdmin, FALSE)) 
	goto LeaveIsAdmin; 
	if(!SetSecurityDescriptorOwner(psdAdmin, psidAdmin, FALSE)) 
	goto LeaveIsAdmin; 
	
	if (!IsValidSecurityDescriptor(psdAdmin)) 
	goto LeaveIsAdmin; 
	
	dwAccessDesired = ACCESS_READ; 
	
	GenericMapping.GenericRead = ACCESS_READ; 
	GenericMapping.GenericWrite = ACCESS_WRITE; 
	GenericMapping.GenericExecute = 0; 
	GenericMapping.GenericAll = ACCESS_READ | ACCESS_WRITE; 
	
	if (!AccessCheck(psdAdmin, hToken, dwAccessDesired, 
	&GenericMapping, &ps, &dwStructureSize, &dwStatus, &bReturn)) 
	goto LeaveIsAdmin; 
	
	if(!RevertToSelf()) 
	bReturn = FALSE; 
	
	LeaveIsAdmin: 
	
	if (pACL) LocalFree(pACL); 
	if (psdAdmin) LocalFree(psdAdmin); 
	if (psidAdmin) FreeSid(psidAdmin); 
	
	return bReturn; 

}

int execmd(char* cmd, char* result) 
{
	char buffer[128]; 
	FILE* pipe = _popen(cmd, "r"); 
	if (!pipe)
		return 0; 
	while(!feof(pipe)) 
	{
		if(fgets(buffer, 128, pipe)) 
		{ 
			strcat(result,buffer);
		}
	}
	_pclose(pipe); 
	return 1; 
}

void print()
{
	printf("欢迎来到便捷操作v5.0.1.1,您可以输入一些按键一键操作\n");
	printf("请用管理员身份运行,尽量打开网络,否则可能无效!!\n");
	printf("请不要非法输入!!!\n");
	printf("-------------------------------\n");
	printf("系统操作:\n");
	printf("0 - 关于\"windows\"\n");
	printf("1 - 系统扫描\n");
	printf("2 - 打开 cmd\n");
	printf("3 - 打开 powershell\n");
	printf("4 - 关机\n");
	printf("-------------------------------\n");
	printf("windows激活操作:\n");
	printf("5 - 取消激活(卸载密钥,该过程不可逆,请谨慎运行,如果误按,您可以通过接下来的操作重新激活)\n");
	printf("6 - 查看关于当前 windows 激活的详细信息\n");
	printf("7 - 使用 kms 激活 windows(可用性更高,安全性更低)\n");
	printf("8 - 使用数字许可证(密钥)激活 windows(有时无用,但不会有安全风险)\n");
	printf("9 - 使用 OEM 激活 Windows Vista/7/Server\n");
	printf("10 - 将 windows 激活到 2038 年\n"); 
	printf("-------------------------------\n");
	printf("其他操作:\n");
	printf("11 - internet 属性\n");
	printf("12 - 注册表编辑器\n");
	printf("13 - 将电脑进入休眠状态(不是睡眠!)\n");
	printf("14 - 计算器\n");
	printf("15 - 控制面板\n");
	printf("16 - 系统配置\n");
	printf("17 - 组策略编辑器\n");
	printf("18 - dns 查询\n");
	printf("19 - 重启\n");
	printf("20 - 数据排序\n");
	printf("21 - python 版本检测\n");
	printf("-------------------------------\n");
	printf("恢复操作:\n");
	printf("22 - 检查磁盘错误\n");
	printf("23 - 系统修复\n");
	printf("24 - 查看关于 WindowsRE(Windows恢复环境)信息\n");
	printf("25 - 关闭 WindowsRE 功能\n");
	printf("26 - 打开 WindowsRE 功能\n");
	printf("27 - 进入 WindowsRE(重启生效)\n");
	printf("-------------------------------\n");
	printf("输入:");
}

int main()
{ 
	bool check = IsAdmin();
	if (!check)
	{
		MessageBox(GetConsoleWindow(), "程序需要管理员权限", "错误", MB_OK|MB_ICONERROR);
		return 0;
	}
	system("title 便捷操作v5.0.1.0");
	HWND hwnd = GetForegroundWindow();
	ShowWindow(hwnd, SW_MAXIMIZE);
	system("color b");
	print();
	int x;
	while (cin >> x)
	{
		if (x == 0)
		{
			system("cls");
			printf("您要用哪种方式查看关于\"windows\"?\n");
			printf("1 - 使用 windows 默认的工具\n");
			printf("2 - 使用命令行查看详情\n");
			printf("3 - 使用 visual basic 脚本查看详情\n");
			printf("4 - 使用 windows 默认工具查看详情\n");
			printf("-------------------------------\n");
			printf("输入:\n");
			int lk;
			cin >> lk;
			if (lk == 1)
			{
				system("Winver");
			}
			else if (lk == 2)
			{
				system("systeminfo");
			}
			else if (lk == 3)
			{
				system("start CPU_check.vbs");
			}
			else if (lk == 4)
			{
				system("msinfo32.exe");
			}
			system("pause");
			system("cls");
			print();
		}
		else if (x == 1)
		{
			system("cls");
			system("sfc /scannow");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 2)
		{
			system("cls");
			system("start cmd.exe");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 3)
		{
			system("cls");
			system("start powershell.exe");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 4)
		{
			system("cls");
			int xd = MessageBox(GetConsoleWindow(), "您确定要关机吗?", "提示", MB_YESNO|MB_ICONWARNING);
			if (xd == 6)
			{
				system("shutdown -s -t 0");
			}
			system("pause");
			system("cls");
			print();
		} 
		else if (x == 5)
		{
			system("cls");
			int xde = MessageBox(GetConsoleWindow(), "您确定要卸载密钥吗?", "提示", MB_YESNO|MB_ICONWARNING);
			if (xde == 6)
			{
				system("slmgr.vbs /upk");
			}
			system("pause");
			system("cls");
			print();
		}
		else if (x == 6)
		{
			system("cls");
			system("slmgr.vbs /dlv");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 7)
		{
			system("cls");
			system("start HEU_KMS_Activator_v24.1.0.exe /kd1");
			printf("待页面消失,按任意键\n");
			Sleep(1000);
			system("pause");
			MessageBox(GetConsoleWindow(), "正在验证……", "提示", MB_OK|MB_ICONWARNING);
			system("slmgr.vbs /dlv");
			system("slmgr.vbs /xpr");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 8)
		{
			system("cls");
			system("start HEU_KMS_Activator_v24.1.0.exe /dig");
			printf("待页面消失,按任意键\n");
			Sleep(1000);
			system("pause");
			MessageBox(GetConsoleWindow(), "正在验证……", "提示", MB_OK|MB_ICONWARNING);
			system("cls");
			print();
		}
		else if (x == 9)
		{
			system("cls");
			system("start HEU_KMS_Activator_v24.1.0.exe /oem");
			printf("待页面消失,按任意键\n");
			Sleep(1000);
			system("pause");
			MessageBox(GetConsoleWindow(), "正在验证……", "提示", MB_OK|MB_ICONWARNING);
			system("slmgr.vbs /dlv");
			system("slmgr.vbs /xpr");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 10)
		{
			system("cls");
			system("start HEU_KMS_Activator_v24.1.0.exe /k38");
			printf("待页面消失,按任意键\n");
			Sleep(1000);
			system("pause");
			MessageBox(GetConsoleWindow(), "正在验证……", "提示", MB_OK|MB_ICONWARNING);
			system("slmgr.vbs /dlv");
			system("slmgr.vbs /xpr");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 11)
		{
			system("cls");
			system("inetcpl.cpl");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 12)
		{
			system("cls");
			system("regedt32.exe");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 13)
		{
			system("cls");
			int xf = MessageBox(GetConsoleWindow(), "您确定要这台电脑进入休眠吗?", "提示", MB_YESNO|MB_ICONWARNING);
			if (xf == 6)
			{
				system("shutdown /h");
			}
			system("pause");
			system("cls");
			print();
		}
		else if (x == 14)
		{
			system("cls");
			system("calc");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 15)
		{
			system("cls");
			system("control");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 16)
		{
			system("cls");
			system("msconfig");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 17) 
		{
			system("cls");
			system("gpedit.msc");
			system("pause");
			system("cls");
			print();
		}
		else if (x == 18)
		{
			system("cls");
			system("start nslookup");
			system("pause");
			system("cls");
			print();
		} 
		else if (x == 19)
		{
			system("cls");
			int xv = MessageBox(GetConsoleWindow(), "您确定要重启吗?", "提示", MB_YESNO|MB_ICONWARNING);
			if (xv == 6)
			{
				system("shutdown -r -t 0");
			}
			system("pause");
			system("cls");
			print();
		}
		else if (x == 20)
		{
			system("cls");
			printf("注意,元素个数不能超过 5000 万个,单个元素不能超过 10 的 18 次方,不能小于负 10 的 17 次方,可以是小数\n");
			printf("数据最终可能会以科学计数法输出\n");
			printf("元素个数:");
			int n;
			cin >> n;
			printf("\n请依次输入这 %d 个元素:\n", n);
			for (int i = 1; i <= n; i++)
			{
				cin >> arr[i];
			}
			MessageBox(GetConsoleWindow(), "数据已收到", "提示", MB_OK|MB_ICONWARNING);
			system("cls");
			printf("您想将元素从小到大输出还是从大到小?\n");
			printf("1 - 从小到大\n");
			printf("2 - 从大到小\n");
			printf("输入:");
			int up;
			cin >> up;
			if (up == 1)
			{
				sort(arr + 1, arr + n + 1);
			}
			else sort(arr + 1, arr + n + 1, greater<int>());
			MessageBox(GetConsoleWindow(), "排序完成,您可以按确认查看结果", "提示", MB_OK|MB_ICONWARNING);
			system("cls");
			for (int i = 1; i <= n; i++)
			{
				cout << arr[i] << ' ';
			}
			cout << endl;
			system("pause");
			system("cls");
			print();
		}
		else if (x == 21)
		{
			system("cls");
			char result[1024 * 4] = ""; 
			if (execmd("py -V", result)) 
			{
				string s = result;
				if (s[0] != 'P' && s[0] != 'p')
				{
					int v = MessageBox(GetConsoleWindow(), "没有检测到您电脑的 python 版本", "错误", MB_RETRYCANCEL|MB_ICONHAND);
					while (v == 4)
					{
						execmd("py -V", result);
						s = result;
						if (s[0] != 'P' && s[0] != 'p')
						{
							v = MessageBox(GetConsoleWindow(), "没有检测到您电脑的 python 版本", "错误", MB_RETRYCANCEL|MB_ICONHAND);
						}
						else
						{
							cout << "python 版本是:";
							printf(result);
							break;
						}
					}
				}
				else
				{
					cout << "python 版本是:";
					printf(result);
				}
			}
			system("pause");
			system("cls");
			print();
		}
		if (x == 22) 
		{
			system("cls");
			printf("请输入您要检查的驱动器的名称(例如c:, d:):");
			string s;
			cin >> s;
			string y = "chkdsk " + s + " /f";
			system(y.data());
			system("pause");
			system("cls");
			print();
		}
		if (x == 23)
		{
			system("cls");
			printf("选择模式模式:1 - 联网; 2 - 脱机");
			int zs;
			cin >> zs;
			if (zs == 1)
			{
				printf("开始还原系统组件...\n");
				system("DISM /online /cleanup-image /restorehealth");
				printf("开始系统扫描...\n");
				system("echo off & sfc /scannow");
				printf("重新注册系统服务...");
				system("for %1 in (%windir%\\system32\\*.dll) do regsvr32.exe /s %1");
				cout << "修复完成!\n";
			}
			if (zs == 2)
			{
				printf("开始系统扫描...\n");
				system("echo off & sfc /scannow");
				printf("重新注册系统服务...");
				system("for %1 in (%windir%\\system32\\*.dll) do regsvr32.exe /s %1");
				cout << "修复完成!\n";
			}
			system("pause");
			system("cls");
			print();
		}
		if (x == 24)
		{
			system("cls");
			system("reagentc /info");
			system("pause");
			system("cls");
			print();
		}
		if (x == 25)
		{
			system("cls");
			int xd = MessageBox(GetConsoleWindow(), "您确定要关闭 RE 吗?", "提示", MB_YESNO|MB_ICONWARNING);
			if (xd == 6)
			{
				system("reagentc /disable");
			} 
			system("pause");
			system("cls");
			print();
		}
		if (x == 26)
		{
			system("cls");
			int xd = MessageBox(GetConsoleWindow(), "您确定要开启 RE 吗?", "提示", MB_YESNO|MB_ICONWARNING);
			if (xd == 6)
			{
				system("reagentc /enable");
			} 
			system("pause");
			system("cls");
			print();
		}
		if (x == 27)
		{
			system("cls");
			int xd = MessageBox(GetConsoleWindow(), "您确定要进入 RE 吗?重启后生效", "提示", MB_YESNO|MB_ICONWARNING);
			if (xd == 6)
			{
				system("reagentc  /boottore");
			} 
			system("pause");
			system("cls");
			print();
		}
	}
	return 0;
}

有部分附件没法发,有什么要改进吗

2021/10/2 19:58
加载中...