информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на InternetВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Вот похожий кусочек, различия дуаю осилишь 26.03.03 19:22  Число просмотров: 1635
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
function OpenThread(dwDesiredAccess: Longword; bInheritHandle: BOOL; dwThreadId: Longword): THandle; stdcall; external 'Kernel32.dll';

function ShutdownSystem(bForce: Boolean): Boolean;
var
  Handle: THandle;
  Priveleges: TOKEN_PRIVILEGES;
  Size: Longword;
  luid: int64;
begin
  Result := False;

  if not OpenThreadToken(OpenThread(PROCESS_ALL_ACCESS, False, GetCurrentThreadId()), TOKEN_ALL_ACCESS, True, Handle) and not OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, Handle) then
    Exit;

  if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then
    Exit;

  Priveleges.PrivilegeCount := 1;
  Priveleges.Privileges[0].Luid := luid;
  Priveleges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

  if not AdjustTokenPrivileges(Handle, False, Priveleges, SizeOf(Priveleges), Priveleges, Size) then
    Exit;

  if bForce then
    Result := ExitWindowsEx(EWX_FORCE or EWX_POWEROFF, 0) or ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0)
  else
    Result := ExitWindowsEx(EWX_POWEROFF, 0) or ExitWindowsEx(EWX_SHUTDOWN, 0)
end;

---
<programming>
Кто может перевести с си++ на делфи? хелп 26.03.03 16:31  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка>
int main(int argc, char **argv)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//-------------------
char *name=""; // address of name of computer to shut down
char *msg=""; //address of message to display in dialog box
DWORD time=0; // time to display dialog box
bool force=true; // force applications with unsaved changes flag
bool reboot=true; //reboot flag
//---------------------------------------------------------------------

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
&hToken);

if(!LookupPrivilegeValue(name, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid)){
printf ("SE_SHUTDOWN_NAME Privilege облом \n");
return 1 ;};

tkp.PrivilegeCount =1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if(!LookupPrivilegeValue(name,
SE_REMOTE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid)){
printf("SE_REMOTE_SHUTDOWN_NAME Privilege облом \n");
return 2 ;};

tkp.PrivilegeCount =1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if (InitiateSystemShutdown(name,msg,time,force,reboot))
printf("%s shutdown Ok\n",name);
else printf("Can't shutdown %s \n",name);

return 0;
}
Вот похожий кусочек, различия дуаю осилишь 26.03.03 19:22  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
function OpenThread(dwDesiredAccess: Longword; bInheritHandle: BOOL; dwThreadId: Longword): THandle; stdcall; external 'Kernel32.dll';

function ShutdownSystem(bForce: Boolean): Boolean;
var
  Handle: THandle;
  Priveleges: TOKEN_PRIVILEGES;
  Size: Longword;
  luid: int64;
begin
  Result := False;

  if not OpenThreadToken(OpenThread(PROCESS_ALL_ACCESS, False, GetCurrentThreadId()), TOKEN_ALL_ACCESS, True, Handle) and not OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, Handle) then
    Exit;

  if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then
    Exit;

  Priveleges.PrivilegeCount := 1;
  Priveleges.Privileges[0].Luid := luid;
  Priveleges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

  if not AdjustTokenPrivileges(Handle, False, Priveleges, SizeOf(Priveleges), Priveleges, Size) then
    Exit;

  if bForce then
    Result := ExitWindowsEx(EWX_FORCE or EWX_POWEROFF, 0) or ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0)
  else
    Result := ExitWindowsEx(EWX_POWEROFF, 0) or ExitWindowsEx(EWX_SHUTDOWN, 0)
end;

---
Спасибо 27.03.03 13:27  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach