2008-09-26 10 views
8

Kann man sich als Benutzer ausgeben, ohne Benutzernamen/Passwort anzugeben? Grundsätzlich möchte ich die CSIDL_LOCAL_APPDATA für einen Benutzer (nicht die aktuelle) mit der ShGetFolderPath() Funktion erhalten. Alles, was ich momentan habe, ist eine SID für diesen Benutzer.Kann man sich als Benutzer ausgeben, ohne sich anzumelden?

Antwort

6

Nein, Sie müssen Win32 API LogonUser Funktion aufrufen, um Windows-Konto-Token zurück zu bekommen, so dass Sie dann imitieren können.

+0

Hmm, das erklärt, warum ich es nicht richtig funktionieren kann ... Gibt es einen anderen Weg, diesen Pfad zu bekommen? Vielen Dank. – dennisV

7

Sie können einen Benutzer ohne Passwort angeben, indem Sie ZwCreateToken aufrufen. Siehe CreatePureUserToken Funktion in diesem Artikel: GUI-Based RunAsEx Sie müssen als ein Administrator (oder LocalSystem) ausgeführt werden, damit dies funktioniert.

Eine weitere Technik besteht in der Verwendung von Windows-Subauthentifizierungspaketen. Dadurch können Sie die integrierte Windows-Authentifizierung außer Kraft setzen und einem LogonUser den Erfolg ermöglichen, auch wenn kein Kennwort angegeben wurde. Siehe hierzu KB article.

Verwandte Themen