Privilege unter Windows 10?
-
Hallo, Ich arbeite an einem Programm um Daten wiederherzustellen?
Dazu muss Ich die MFT in C:\ lesen, aber ich bekomm immer den Fehlercode 5 - Access Denied. Das liegt daran, dass C: nur vom Administrator gelesen werden darf. Jetzt wollt ich mir die Privilegien holen, aber das klappt nicht richtig?TOKEN_PRIVILEGES tp;
LUID luid;
HANDLE hToken;OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);
LookupPrivilegeValue(NULL, SE_BACKUP_NAME, &luid);tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(
hToken,
FALSE,
&tp,
sizeof(TOKEN_PRIVILEGES),
(PTOKEN_PRIVILEGES) NULL,
(PDWORD) NULL);Fehler bekomm ich von den einzelnen Funktionen nicht, aber ich erhalte auch keine Privilegien?
Danke!
-
Hallo, Ich arbeite an einem Programm um Daten wiederherzustellen?
Benutzt du einen Zufallsgenerator für deine Satzzeichen?
-
@Mike85Dev sagte in Privilege unter Windows 10?:
Fehler bekomm ich von den einzelnen Funktionen nicht, aber ich erhalte auch keine Privilegien?
Wie stellst du das fest, wenn du keinen einzigen Returnwert prüfst?
-
Das mit den if Anweisungen hab ich nur im Beispiel weggelassen.
-
@Mike85Dev sagte in Privilege unter Windows 10?:
Das mit den if Anweisungen hab ich nur im Beispiel weggelassen.
Es geht darum, dass du ein Minimal-Beispiel bereitstellst, was sich jemand, der dir helfen will, mal eben fix in ein jungfräuliches Projekt kopiert und dann den Fehler entweder nachvollziehen kann oder eben nicht. Wenn du relevanten Quellcode weglässt, ist das nicht hilfreich.
-
- Du prüfst vermutlich nur den Returnwert von
AdjustTokenPrivileges
-- das ist aber nicht genug, du musst auch nochGetLastError
abfragen. Siehe https://docs.microsoft.com/en-us/windows/win32/secauthz/enabling-and-disabling-privileges-in-c-- - Du kannst natürlich nur privileges aktivieren die dein Benutzer auch hat, und als normaler Benutzer hast du halt kein
SE_BACKUP_NAME
. Weil das sonst ziemlich übel wäre, du könntest damit ja alle nicht verschlüsselten Files von anderen Benutzern lesen.
- Du prüfst vermutlich nur den Returnwert von