Tutoriale Linux, Tutoriale Programare, Tutoriale retele, tutoriale photoshop

Puteti folosi functia NtShutdownSystem ca sa stingeti / reboot-ati computerul brusc, fara a mai initializa secventa de shutdown [ca si cum ati apasa pe butonul Reset]

Intai trebuie sa importam functia din ntdll.dll, scrieti asta inainte sub declararea variabilelor:

Cod:

function NtShutdownSystem(TipShutDown: dword):dword; stdcall external 'ntdll.dll' name 'NtShutdownSystem';

si apelati functia prin:

Cod:

NtShutdownSystem(Tip);

unde tip poate fi:
0 - Shutdown fara reboot, dupa ce se inchide sistemul procesorul intra intr-un loop infinit.
1 - Shutdown cu reboot, se cheama functia BIOS Reset dupa inchiderea sistemului
2 - Shutdown complet, se apeleasa functia  BIOS Shutdown. Daca nu e suportata functia asta, se apeleaza Bios Reset.

In cazul in care nu merge, inseamna ca procesul nu are privilegii pentru Shutdown, asa ca va arat si cum sa activati privilegiile pentru shutdown [trebuie sa aveti cont de admininistrator]:

Cod:

var tmp,token:dword;
tp,tprev:TTokenPrivileges;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,token);
tp.PrivilegeCount:=1;
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
tp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(token,false,tp,sizeof(tprev),tprev,tmp);
Ethical hacking and programming community