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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] admin 29.03.03 12:00  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как узнать (WinXP) что текущий юзер - Администратор?
А чем GetUserName не нравится? 10.04.03 13:42  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
[Win32] Из реестра 29.03.03 14:35  
Автор: zonny <Sasha> Статус: Member
<"чистая" ссылка>
[Win32] Из реестра 10.04.03 09:59  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Подробнее можно? ;))))))
[Win32] Из реестра 10.04.03 13:31  
Автор: zonny <Sasha> Статус: Member
Отредактировано 10.04.03 13:33  Количество правок: 1
<"чистая" ссылка>
> Подробнее можно? ;))))))
Если адрес в реестре, то вот для w2k
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
Там ключ Logon User Name . Он то и содержит имя пользователя.
[WinNT?] Я гонец из Пензы ;-))))))) 11.04.03 20:22  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 12.04.03 06:39  Количество правок: 3
<"чистая" ссылка>
> > Подробнее можно? ;))))))
> Если адрес в реестре, то вот для w2k
> HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
> \Explorer
> Там ключ Logon User Name . Он то и содержит имя
> пользователя.

И всё-таки, IMHO, не надо извращений... Я думаю, что автор корневого поста хотел узнать, имеет ли процесс, в котором исполняется некий код, административные привилегии...

В MSDN описано как минимум два метода. В первом открываем Token процесса и долго с ним мучаемся... Метод этот самый правильный и самый трудный в плане кодирования, но единожды закодив...

Второй метод прост, как выстрел из пистолета. Вот пример функции на Delphi:
Uses WINSVC;
----------
Function IsUserAdmin(Const aHostName: String): Bool;
Var SCHndl: THandle;
Begin
  SCHndl := OpenSCManager(PChar(aHostName), Nil, SC_MANAGER_ALL_ACCESS);
  Result := SCHndl <> 0;
  If Result Then 
    CloseServiceHandle(SCHndl)
  Else 
    If GetLastError <> ERROR_ACCESS_DENIED Then
      RaiseLastWin32Error;
End;

---


Суть трюка в том, что NT сама проверит вас на «административность», если вы запросите такой высокий уровень доступа к базе системных служб. Более того, если указать aHostName (не пустой), то можно проверить свои силы на удалённой машине ;-)
1




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


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