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

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


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

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



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

Завершение работы Windows.

Для завершения работы Windows можно воспользоваться функцией ExitWindowsEx. При этом файловые буфера будут сброшены на диск, а система приведена в состояние, когда компьютер можно безопасно выключить.

 

В Windows NT/2000/XP: для завершения работы системы необходимо получить привелегию SE_SHUTDOWN_NAME, как показано в следующем примере:

BOOL MySystemShutdown()
 {
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
 
    // Получаем маркер текущего процесса.
 
    if (!OpenProcessToken(GetCurrentProcess(),
         TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
       return( FALSE );
 
    // Получаем LUID для привелегии завершения работы.
 
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
         &tkp.Privileges[0].Luid);
 
    tkp.PrivilegeCount = 1;  // будет установлена одна привелегия
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 
    // Получаем привелегию завершения работы для этого процесса.
 
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
         (PTOKEN_PRIVILEGES)NULL, 0);
 
    if (GetLastError() != ERROR_SUCCESS)
       return FALSE;
 
    // Шутдауним систему и заставляем все приложения закрыться.
 
    if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
       return FALSE;
 
    return TRUE;
 }

 



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

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




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



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


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