UAC - oder wie registriere ich einfach COM ohne separaten prozess
-
Das ist nur zum testen und den rückgabewert habe ich im debuggr ja im eax register, das ist kein problem.
-
Ich hab nun zur vergrößerung des publikums die geschichte auch noch bei MS gepostet:
http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=116&SiteID=1
-
Hast du bei "LogonUser" mal ein anderes Flag probiert als LOGON32_LOGON_NETWORK? Und warum gibst du hier weniger Informationen als im MSDN-Forum?
-
Ich hab schon so ziemlich jede Logon art versucht. Bei LOGON_INTERACTIVE/BATCH bekommt man ein primary token, welches man dass durch DuplicateToken in ein impersonations token umwandeln muss/soll(da habe ich auch schon zig kombinationen ausprobiert).
Ich glaube ich sollte das so langsam irgendwie in klassen packen, und dann zigtausende zufällige kombinationen ausprobieren, bis es funktioniert...
(zu den informationen: das mit dem überprüfen des tokens habe ich erst später angefangen(in dem ausmaß))
-
Hast du mal versucht, der Funktion SetThreadToken ein Primary Token zu übergeben?
-
Ja, dadurch funktioniert das GetTokenInfo mit den Privileges, der ImpersonationLevel aufruf aber nicht. (Alle funktionen sind erfolgreich, außer eben die, die nach dem ImpersonationLevel fragt, das Lookup...Name schlägt trotzdem fehl).
Und der dateitest gibt wieder ERROR_BAD_INPERSONATION_LEVEL zurück.
-
Soweit ich weiß, kann man Teile eines Prozesses unter Vista mit UAC nicht mehr dynamisch anheben. Der ganze Prozess läuft nur mit den Rechten, mit denen er gestartet wird. Abhilfe schafft nur, den entsprechenden Code in einen zweiten Prozess auszulagern, der dann mit <requireAdministrator> gestartet wird oder die Verwendung von einem COM-Objekt, welches ebenfalls in einem externen Prozess gestartet wird (meistens dllhost.exe).
-
Joar, scheint wohl wirklich so zu sein.
http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-1320-Part-4-1320-User-Account-Control.aspx schrieb:
You can change the integrity level when a process is created but not once it has been created.
-
dann ist doch die ganze impersonation für'n a.
Was will man machen, auf zum separaten prozess.
-
Also ich hab gerade das token mal etwas überprüft und anscheinend hat es ein integrity level von untrusted.
