2009-12-21 9 views

Respuesta

-1

Según MSDN

"procesos de baja integridad pueden escribir y crear subcarpetas bajo PERFIL% USUARIO% \ AppData \ LocalLow"

No creo que haya ninguna forma de evitar la codificación dura de las dos últimas carpetas.

2

Según MSDN

Cuando está en modo protegido, las extensiones pueden escribir archivos en una carpeta debajo de la carpeta PerfilUsuario del usuario , típicamente % USERPROFILE% \ AppData \ LocalLow. Use la función SHGetKnownFolderPath con el indicador FOLDERID_LocalAppDataLow en obtenga el nombre de la carpeta expandida.

SHGetKnownFolderPath(FOLDERID_LocalAppDataLow, 0, 
    NULL, szPath, ARRAYSIZE(szPath)); 
+5

Eso obtiene la aplicación de datos local, pero no la temperatura baja ... –

+0

Si bien esta no es una respuesta directa a su pregunta, parece ser la única carpeta segura que puede obtener sin codificar la ruta. Yo usaría eso y crearía la carpeta temporal allí. (Por supuesto, esto le otorga más responsabilidad para administrar la eliminación final de los archivos). – Danra

4

El "Finding Low Integrity Write Locations" section de la "comprensión y el trabajo en el modo protegido de Internet Explorer" artículo incluye el siguiente dato:

Nota modo protegido modifica las variables de entorno de IE. Como resultado, la función GetTempPath() devuelve% Temp% \ Low cuando se llama mientras el modo protegido está activo.

+0

Creo que esto es solo un IE ... – Anders

1

Si solo está buscando un directorio temporal para escribir, puede recorrer los directorios dentro del directorio %temp% e intentar escribir en cada uno.

Si el UAC está desactivado, . debería ser el primero. De lo contrario, .\Low debe ser el único.

+0

Es interesante, tal vez el sistema operativo se ocupa de darle la ruta Temp \ Low en la variable% temp% environemnt, por lo que GetTempPath() devuelve la ruta correcta? No lo probé. Sin embargo, esto * no * se correlaciona directamente con UAC. UAC evita que siempre se ejecute con un token de alta integridad. Pero incluso cuando el UAC está desactivado, los procesos pueden crearse con baja integridad. – Danra

Cuestiones relacionadas