SaferCreateLevel SAFER_LEVELID_UNTRUSTED: Die Anwendung konnte nicht korrekt gestartet werden (0xc0000142)

ich versuche zu starten, einen Prozess (alle - Verfahren) als "nicht vertrauenswürdigen" mit der SaferCreateLevel mit der SAFER_LEVELID_UNTRUSTED sicherer Ebene:

Können Programme ausführen, mit Zugang nur zu den Ressourcen gewährt zu öffnen, die bekannten Gruppen, die Sperrung des Zugangs zu Administrator und Power-User Privilegien und persönlich gewährten Rechte.

Mit dem code von Michael Howards DropMyRights MSDN Artikel (Das surfen im Web und das Lesen von E-mail-Sicher wie ein Administrator) der pseudo-code ist:

//get a handler on a Safer level
hSaferLevel = SaferCreateLevel(SAFER_SCOPEID_USER, SAFER_LEVELID_UNTRUSTED);

//Create a security token out of the safer level handle
hSecurityToken = SaferComputeTokenFromLevel(hSaferLevel);

//Create process as user
CreateProcessAsUser(hSecurityToken, "myapp.exe");

Außer, dass der Prozess nicht gestartet:

Die Anwendung konnte nicht korrekt gestartet werden (0xc0000142).

SaferCreateLevel SAFER_LEVELID_UNTRUSTED: Die Anwendung konnte nicht korrekt gestartet werden (0xc0000142)

Was ist denn hier Los?

Hinweis: das Starten eines Prozesses auf die SAFER_LEVELID_NORMALUSER gut funktioniert:

Können Programme ausführen als Benutzer, der nicht über Administrator oder Power-User Benutzer-Rechte. Software kann den Zugriff auf Ressourcen zugänglich durch normale Benutzer.

Obwohl da schon jeder läuft als "Normalen Benutzer" in diesen Tagen, es gibt wenig Wert in es.


Meine Anwendung ist in der Lage zu handhaben die Ausführung als "niedrig" user.

Ziel war es, den Prozess laufen mit der gleichen privelages als MandatoryIntegrity\Low Prozess bekommen würde (obwohl nicht markiert als "low"). Also habe ich getestet.

ich verwendet icacls zu markieren meine Anwendung ausführen Mandatory Integrity Level\Low:

C:\Develop>icacls RTMS.exe /setintegritylevel Low
processed file: RTMS.exe
Successfully processed 1 files; Failed processing 0 files

Und meine Anwendung startet korrekt und läuft bei der niedrigen integrity level:

SaferCreateLevel SAFER_LEVELID_UNTRUSTED: Die Anwendung konnte nicht korrekt gestartet werden (0xc0000142)

Während ich vielleicht in der Lage zu verwenden, die AddMandatoryAce API, oder Geige mit den ACLs in den security-token selbst, ich bin gespannt, was sich mit einem UNTRUSTED Sicherer Niveau - und das ist, warum ich kann nicht alles bekommen, um zu starten.

Hinweis: Auf Windows 7, wenn Sie daneben calc oder notepad als /setintegritylevel low Sie wird nicht mehr starten (keine Fehlermeldung, einfach nie erscheinen), auch obwohl in diesem MSDN-Artikel spricht über die Verwendung von calc wie ein test der low integrity level:

SaferCreateLevel SAFER_LEVELID_UNTRUSTED: Die Anwendung konnte nicht korrekt gestartet werden (0xc0000142)

InformationsquelleAutor Ian Boyd | 2011-06-22
Schreibe einen Kommentar