информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRыВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
 Notepad++ полгода раздавал зараженные... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Pascal] Вот привет кода 19.01.02 12:56  Число просмотров: 1055
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Это для Delphi, сишный я чего-то найти не могу :-(
Думаю разберешся, детали функций смотри в MSDN.
Удачи!

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>
Завершения сеанса WinXP 19.01.02 01:28  
Автор: Mikle Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Пиплы. А кто знает, как реально (чтоб работало на практике) завершать работу под XP на Delphi :
Logoff
Shutdown
Reboot и т.д.
процедуры типа windows.exitwindows(0,0) или
winexec('rundll32 user32, ExitWinodwsEx 0','') - не фурычат
[Pascal] Вот привет кода 19.01.02 12:56  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Это для Delphi, сишный я чего-то найти не могу :-(
Думаю разберешся, детали функций смотри в MSDN.
Удачи!

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;

---
сначала вызови AdjustTokenPrivileges(SeShutdownPrivilege) 19.01.02 05:09  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
А я давно говорил, что XP-это г&#$но. Люди, ставьте NT! 19.01.02 05:15  
Автор: push Статус: Незарегистрированный пользователь
<"чистая" ссылка>
это фича всех NT ;) - security :) 19.01.02 08:50  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
1




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


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