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

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

Помогите перевести код! [D5, Win2k]


SVM ©   (2002-11-21 14:36:00) 

Есть код на C++, необходимо перевести на DELPHI.
Всем заранее спасибо!

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


apay   (2002-11-22 20:05:00) [1]

2 SVM
компилишь в .obj любым C-компилятором, который делает OMF, например борландовским bcc32.exe, потом в делфях пишешь

{$L myfile.obj}
procedure DisplayPasswordWin2K; external;

только printf может мешаться, но его можно заменить на апишную wsprintfA (на сях придетсянемного подправить).
но еще лучше подучить C++.


Игорь Шевченко   (2002-11-22 12:44:00) [2]

paul_shmakov © (22.11.02 12:41)

Спасибо. Осталось под WinXP проверить :-) Там, вроде, много дырок заткнули...

С уважением,


paul_shmakov   (2002-11-22 12:41:00) [3]

2 Игорь Шевченко:
программа PasswordReminder под w2k прекрасно работает :) т.е. пароль все так же хранится в адресном пространстве winlogon.
единственное, что они поправили - в win2k вместе с паролем не хранится байт, с которым этот пароль проксорен (в nt хранился). но и эта проблема легко решается перебором 256 вариантов (см. код вверху).


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

paul_shmakov © (21.11.02 21:01)

Руссинович про Win2K пишет, может, там оно уже поправлено ? :-)


SVM   (2002-11-21 21:15:00) [5]

Мда, думается, что мне никто не поможет...

2 apay Никогда с этим не сталкивался, можно поподробнее pliz


paul_shmakov   (2002-11-21 21:03:00) [6]

кстати, Russell Osterlund является главным инженером BoundChecker в NuMega :) вот и получается, что ближе к ядру, тем меньше случайных людей :)


paul_shmakov   (2002-11-21 21:01:00) [7]

2 Игорь Шевченко:
конечно, по всем правилам (да и по логике вещей) должен использоваться токен, но когда Russ Osterlund обнаружил, что пароль лежит в открытом виде (почти, он проксорен), то сразу стали искать, а где к нему обращения есть. в результате поиска выяснилось, что он используется при авторизации на удаленных машинах.
вот такие пироги.

см. изначальный пост в bugtraq
http://archives.neohapsis.com/archives/ntbugtraq/1998-1999/msg00178.html

там внизу ссылка - ответ Dave Mills.


raven79   (2002-11-21 19:32:00) [8]

можно и так... но я так смотрю врод не сложно и переводить...


apay   (2002-11-21 19:28:00) [9]

а зачем переводить-то :), компильни в .obj и прилинкуй в дельфях:
{$L myobj.obj}


Игорь Шевченко   (2002-11-21 17:06:00) [10]

paul_shmakov © (21.11.02 16:48)

А Руссинович пишет, что Token используется...


paul_shmakov   (2002-11-21 16:48:00) [11]

автор полного кода - Russ Osterlund ( http://www.smidgeonsoft.com/). программа называется PasswordReminder. основана на том факте, что по nt/2k имя пользователя и пароль в открытом виде хранятся в процессе winlogon.exe (при условии использования стандартной gina dll). хранятся они там для осуществления аутентификации на удаленных машинах, хотя по идее для этих целей должен использоваться токен пользователя.

2 SVM:
надежда, что кто-то за вас выполнит тупую работу - это плохо :)


cdadmitriy   (2002-11-21 14:58:00) [12]

А сначало полный код можно ?


Игорь Шевченко   (2002-11-21 14:53:00) [13]

А вот хренушки... :-)


Наверх

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