Текущий архив: 2003.01.13;
Скачать: CL | DM;
Вниз
пароль текущего пользователя Найти похожие ветки
← →
exchoper (2002-11-22 14:16) [0]Собственно Subj как узнать под NT?
← →
Song (2002-11-22 14:21) [1]Вы разве не знаете? Это давно уж всем известно..
GetCurrentUserPassword(UserName:String):String;
← →
exchoper (2002-11-22 14:41) [2]Все прикалывемся? :) не, ну, действительно, хочу не запрашивать лишний раз для логина в базу, так можно его узнать?
← →
Reindeer Moss Eater (2002-11-22 14:46) [3]Что бы залогонить юзера на SQL сервере, поддерживающем идентификацию средствами NT, как раз не надо передавать ни пароль, ни имя пользователя.
← →
Игорь Шевченко (2002-11-22 14:47) [4]А с какой травы пароль для базы и для windows должен быть одним и тем же ?
Имя узнать - ради бога - GetUserName
← →
exchoper (2002-11-22 15:25) [5]->Reindeer Moss Eater
мне попутно некоторые параметры надо инициализить искодя из настроек в базе по данному пользователю
->Игорь Шевченко
ни с какой, так удобнее для меня если сделать их одинаковыми и не вводить лишний раз
хоть кто-нибудь может ответить на вопрос а не спрашивать зачем мне это надо?!
← →
Игорь Шевченко (2002-11-22 15:30) [6]Я могу ответить - нельзя это сделать.
← →
Reindeer Moss Eater (2002-11-22 15:32) [7]мне попутно некоторые параметры надо инициализить искодя из настроек в базе по данному пользователю
Пароль-то здесь зачем потребовался?
← →
exchoper (2002-11-22 16:39) [8]Да, похоже нельзя, полазил, нашел только для 98...
← →
raven79 (2002-11-22 18:40) [9]на сях....
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 <= 0xff; i++)
{
CopyMemory
(EncodedString.Buffer,
PasswordP,
PasswordLength * sizeof (wchar_t));
// Finally - try to decode the password.
pfnRtlRunDecodeUnicodeString
((BYTE) i,
&EncodedString);
// Check for a viewable password.
PBYTE p = (PBYTE) EncodedString.Buffer;
BOOL Viewable = TRUE;
DWORD j, k;
for (j = 0; (j < PasswordLength) && Viewable; j++)
{
if ((*p)
&&
(* (PBYTE)(DWORD (p) + 1) == 0))
{
if (*p < 0x20)
Viewable = FALSE;
if (*p > 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
← →
SVM (2002-11-22 22:34) [10]Хе-хе, это только часть кода
← →
raven79 (2002-11-23 05:49) [11]ну есть и полный... :)
← →
AlexandrRya (2002-11-24 22:40) [12]>raven79
Из соседней ветки взял?
там этот код один умник просил перевести на DELPHI.
>exchoper
А вообще-то не стоит этого деалть: тем самым ты снижашь защищенность системы - и так дыра на дыре!
Ведь тем методом, который предложен выше можно вытащить пароль только при наличии привилегий отладки, а они есть не у каждого (по крайней мере так принято считать, хотя, учитывая, то с этим проблем может и не быть). А твое приложение (вероятнее всего) будет иметь те же привилегии, что и пользователь, значит читать его и вытаскивать пароли будет так же просто, как два пальца ...
← →
AlexandrRya (2002-11-24 22:44) [13]Sorry, забыл сказать, что надо учитывать: http://bugtraq.ru/library/internals/ntadmin.html
Страницы: 1 вся ветка
Текущий архив: 2003.01.13;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.008 c