Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Как выключить компьютер?


bool shoot(bool reboot, bool force) // с reboot все ясно, force - "форсированный", беакцепторный режим
 
 {
 
 OSVERSIONINFO ver;
 
 ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 
 GetVersionEx(&ver);
 
 if (ver.dwPlatformId == VER_PLATFORM_WIN32_NT) // в семействе NT для выключения необходимо иметь привилегию SE_SHUTDOWN_NAME
 
         {
 
         HANDLE hToken;
 
         TOKEN_PRIVILEGES* NewState;
 
         OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken);
 
         NewState=(TOKEN_PRIVILEGES*)malloc(sizeof(TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES));
 
         NewState->PrivilegeCount = 1;
 
         LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&NewState->Privileges[0].Luid);
 
         NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 
         AdjustTokenPrivileges(hToken, FALSE, NewState, NULL, NULL,NULL);
 
         free(NewState);
 
         CloseHandle(hToken);
 
         }
 
 
 
 UINT mode = 0;
 
 if (reboot)
 
         mode += EWX_REBOOT;
 
 else
 
         mode += EWX_POWEROFF;
 
 
 
 if (force) mode += EWX_FORCE;
 
 
 
 return ExitWindowsEx(mode ,0);
 
 }



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS