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 Funktion ShGetFolderPath()
erhalten. Alles, was ich momentan habe, ist eine SID für diesen Benutzer.
Nein, Sie müssen die Win32-API LogonUser -Funktion aufrufen, um das Windows-Konto-Token zurück zu bekommen, damit Sie sich dann imitieren können.
Sie können einen Benutzer ohne Kennwort angeben, indem Sie ZwCreateToken aufrufen. Siehe die CreatePureUserToken-Funktion in diesem Artikel: GUI-Based RunAsEx Sie müssen als Administrator (oder LocalSystem) ausgeführt werden, damit dies funktioniert.
Eine weitere Technik besteht in der Verwendung von Windows-Subauthentifizierungspaketen. Auf diese Weise können Sie die integrierte Windows-Authentifizierung außer Kraft setzen und einem LogonUser den Erfolg ermöglichen, selbst wenn kein Kennwort angegeben wurde. Siehe KB-Artikel .
Tags und Links security visual-c++ winapi impersonation