информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вот похожий кусочек, различия дуаю осилишь 26.03.03 19:22  Число просмотров: 1481
Автор: 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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach