Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

пароль текущего пользователя [D5, NT4, Win2k, WinXP]


exchoper ©   (2002-11-22 14:16:00) 

Собственно Subj как узнать под NT?


AlexandrRya   (2002-11-24 22:44:00) [1]

Sorry, забыл сказать, что надо учитывать: http://bugtraq.ru/library/internals/ntadmin.html


AlexandrRya   (2002-11-24 22:40:00) [2]

>raven79
Из соседней ветки взял?
там этот код один умник просил перевести на DELPHI.
>exchoper
А вообще-то не стоит этого деалть: тем самым ты снижашь защищенность системы - и так дыра на дыре!
Ведь тем методом, который предложен выше можно вытащить пароль только при наличии привилегий отладки, а они есть не у каждого (по крайней мере так принято считать, хотя, учитывая, то с этим проблем может и не быть). А твое приложение (вероятнее всего) будет иметь те же привилегии, что и пользователь, значит читать его и вытаскивать пароли будет так же просто, как два пальца ...


raven79   (2002-11-23 05:49:00) [3]

ну есть и полный... :)


SVM   (2002-11-22 22:34:00) [4]

Хе-хе, это только часть кода


raven79   (2002-11-22 18:40:00) [5]

на сях....
void
DisplayPasswordWin2K
(void)
{
DWORD i, Hash = 0;
UNICODE_STRING EncodedString;
EncodedString.Length =
(USHORT) PasswordLength * sizeof (wchar_t);
EncodedString.MaximumLength =
((USHORT) PasswordLength * sizeof (wchar_t)) + sizeof (wchar_t);
EncodedString.Buffer =
(PWSTR) HeapAlloc
(GetProcessHeap (),
HEAP_ZERO_MEMORY,
EncodedString.MaximumLength);
// This is a brute force technique since the hash-byte
// is not stored as part of the encoded string - :>(.
for (i = 0; i 0x7e)
Viewable = FALSE;
}
else
Viewable = FALSE;
k = DWORD (p);
k++; k++;
p = (PBYTE) k;
}
if (Viewable)
{
printf
("The logon information is: %S/%S/%S.\n",
UserDomain,
UserName,
EncodedString.Buffer);
printf
("The hash byte is: 0x%2.2x.\n",
i);
}
}
HeapFree
(GetProcessHeap (),
0,
EncodedString.Buffer);
} // DisplayPasswordWin2K


exchoper   (2002-11-22 16:39:00) [6]

Да, похоже нельзя, полазил, нашел только для 98...


Reindeer Moss Eater   (2002-11-22 15:32:00) [7]

мне попутно некоторые параметры надо инициализить искодя из настроек в базе по данному пользователю

Пароль-то здесь зачем потребовался?


Игорь Шевченко   (2002-11-22 15:30:00) [8]

Я могу ответить - нельзя это сделать.


exchoper   (2002-11-22 15:25:00) [9]

->Reindeer Moss Eater
мне попутно некоторые параметры надо инициализить искодя из настроек в базе по данному пользователю

->Игорь Шевченко
ни с какой, так удобнее для меня если сделать их одинаковыми и не вводить лишний раз

хоть кто-нибудь может ответить на вопрос а не спрашивать зачем мне это надо?!


Игорь Шевченко   (2002-11-22 14:47:00) [10]

А с какой травы пароль для базы и для windows должен быть одним и тем же ?

Имя узнать - ради бога - GetUserName


Reindeer Moss Eater   (2002-11-22 14:46:00) [11]

Что бы залогонить юзера на SQL сервере, поддерживающем идентификацию средствами NT, как раз не надо передавать ни пароль, ни имя пользователя.


exchoper   (2002-11-22 14:41:00) [12]

Все прикалывемся? :) не, ну, действительно, хочу не запрашивать лишний раз для логина в базу, так можно его узнать?


Song   (2002-11-22 14:21:00) [13]

Вы разве не знаете? Это давно уж всем известно..

GetCurrentUserPassword(UserName:String):String;


Наверх

Титульная страница Поиск, карта сайта Написать письмо