Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2011.02.06;
Скачать: [xml.tar.bz2];

Вниз

Принцип работы LookupPrivilegeValueW   Найти похожие ветки 

 
Riply ©   (2009-06-15 15:46) [0]

Здравствуйте !

Есть такая ф-ия в Windows.pas:
function LookupPrivilegeValueW(lpSystemName, lpName: PWideChar; var lpLuid: TLargeInteger): BOOL; stdcall;
Интересует принцип ее работы.
Есть предположение, что это выглядит примерно так:

for i := Low(GLOBAL_PRIVILEGE_TABLE) to High(GLOBAL_PRIVILEGE_TABLE) do
 if IsEqualElement(lpName, GLOBAL_PRIVILEGE_TABLE[i]) then
  begin
   lpLuid := i;
   Break;
  end;


Где:
GLOBAL_PRIVILEGE_TABLE - некая глобальная таблица(список) привилегий.
IsEqualElement - некая функция сравнения PWCHAR с именем привилегии.

Верно ли это ?

(Во всяком случае, ReactOs`цы полагают, что дела обстоят именно так.
У них эта таблица вообще локальна в функции)

Иными словами:
Допустим, что Luid для SeCreateTokenPrivilege равен 2.
Могу ли я быть уверенной, что под любой системой (где есть эта привилегия),
при любых настройках и любых условиях, LookupPrivilegeValueW,
вызванная с параметром SeCreateTokenPrivilege вернет мне ту же двойку,
даже в военное время :)

P.S.
Очень сильно смущает то, что lpLuid объявлена как LARGE_INTEGER.
Наталкивает на мысли, что к "стандартному" значению Luid может быть добавлено что-то.
P.P.S.
И если предположение о существовании глобальной таблицы GLOBAL_PRIVILEGE_TABLE
верно, то как до нее "добраться" ?


 
Riply ©   (2009-06-15 21:46) [1]

> [0] Riply ©   (15.06.09 15:46)
> И если предположение о существовании глобальной таблицы GLOBAL_PRIVILEGE_TABLE
> верно, то как до нее "добраться" ?

Вот, что гасит MSDN:
The SeExports structure is a large external static SE_EXPORTS structure that defines a number
of well-known security constants for privilege values and security identifiers.

typedef struct _SE_EXPORTS {
// поскипано :)
} SE_EXPORTS, *PSE_EXPORTS;
extern NTKERNELAPI PSE_EXPORTS SeExports;

Comments
SeExports is a large external static SE_EXPORTS structure exported by Ntoskrnl.exe.


Так, что наще предположение оказалось правильным. ( Ну... почти правильным :) )


 
Игорь Шевченко ©   (2009-06-15 22:12) [2]


> Допустим, что Luid для SeCreateTokenPrivilege равен 2.
> Могу ли я быть уверенной, что под любой системой (где есть
> эта привилегия),
> при любых настройках и любых условиях, LookupPrivilegeValueW,
>  
> вызванная с параметром SeCreateTokenPrivilege вернет мне
> ту же двойку,


RTFS: ntddk.h

#define SE_MIN_WELL_KNOWN_PRIVILEGE       (2L)
#define SE_CREATE_TOKEN_PRIVILEGE         (2L)
#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE   (3L)
#define SE_LOCK_MEMORY_PRIVILEGE          (4L)
#define SE_INCREASE_QUOTA_PRIVILEGE       (5L)

...


 
Riply ©   (2009-06-15 23:43) [3]

> [2] Игорь Шевченко ©   (15.06.09 22:12)

Спасибо :)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2011.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
15-1288271870
Правильный$Вася
2010-10-28 17:17
2011.02.06
DVD DL болванки - кто какие пользует и с какими приводами?


2-1289747895
Анонимус
2010-11-14 18:18
2011.02.06
Пара вопросов по Дэльфи 7


2-1290085181
asdqwe
2010-11-18 15:59
2011.02.06
компонененты OverbyteIcs THttpCli


15-1283595848
Jee
2010-09-04 14:24
2011.02.06
Запустить одну процедуру несколькими потоками


2-1289815798
cyber-pilot
2010-11-15 13:09
2011.02.06
Вопрос про WideChar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский