Содержание материала

Сегодня мы напишем прогу на WinApi, выключающую W2k, и занимающую всего 10 Кб!

 

Code:

program reboot;

 

uses

Windows, messages;

 

procedure RebootSystem;

var

handle_: THandle;

n: DWORD;

luid: TLargeInteger;

priv: TOKEN_PRIVILEGES;

ver: TOSVERSIONINFO;

begin

ver.dwOSVersionInfoSize := Sizeof(ver);

GetVersionEx(ver);

if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then

begin

   if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, handle_) then

     if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then

     begin

       priv.PrivilegeCount := 1;

       priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

       priv.Privileges[0].Luid := luid;

       AdjustTokenPrivileges(handle_, false, priv, 0, nil, n);

     end

     else

       writeln('Ошибка')

   else

     writeln('Ошибка ');

end

else

   writeln('Ошибка ');

if not ExitWindowsEx(EWX_POWEROFF,1) then

   writeln('Ошибка');

end;

 

begin

RebootSystem;

end.

 

Добавить комментарий

Не использовать не нормативную лексику.

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

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить