2009-02-12 12 views
5

He estado evaluando herramientas de análisis de perfiles y memoria para programas nativos de C++ en Windows y todos ellos quieren instalarse y ejecutar con privilegios de administrador. Raramente inicio sesión como administrador en mi máquina. Si necesito instalar algo o hacer algo que requiera privilegios administrativos, uso runas y funciona bastante bien.Por qué los profilers necesitan privilegios administrativos (en Windows)

¿Es legítimo que un generador de perfiles requiera privilegios de administrador o los desarrolladores de perfiles solo son perezosos? ¿Estoy siendo irracional al rechazar todas estas herramientas sobre esta base?

Estoy desarrollando con VS 2005 en una máquina XP Pro.

Respuesta

3

He estado leyendo sobre esto y poco a poco estoy llegando a la conclusión de que las herramientas tipo profiler en general no requieren acceso administrativo, pero afirmar que lo requiere es una manera fácil para los fabricantes de evitar todo problemas relacionados con privilegios insuficientes.

Entonces, supongo que son siendo flojo pero también algo pragmático.

Corrígeme si me equivoco (no soy un experto en el modelo de seguridad de Windows), pero creo que una forma de manejar esta situación sería requerir privilegios de administrador solo en el momento de la instalación. Luego, cree un grupo de usuarios de ProfilerUsers y otorgue todos los privilegios necesarios a ese grupo, luego pregunte qué usuarios de la computadora deberían agregarse a ese grupo.

Lo más impactante que he descubierto es que muchos desarrolladores corren todo el tiempo con privilegios administrativos.

4

Porque tienen que mirar la memoria de otro proceso, que normalmente es tabú.

+0

YMMV, pero en Linux es muy común que un código con privilegios de usuario sea depurado por un depurador con privilegios de usuario (por supuesto, ambos deben ejecutarse bajo el mismo ID de usuario). –

+0

Estoy usando AQTime en el trabajo (ejecutándose en Vista) y nunca solicitó privilegios de administrador (UAC está habilitado). – OregonGhost

+0

Hay muchas herramientas, explorador de procesos, por ejemplo, mira la memoria de otro proceso y la pila de subprocesos. –

0

Suena como una opción de diseño por los desarrolladores. Es posible que hayan pensado que era una buena idea solicitar derechos de administrador antes de buscar en la memoria o alterar el código dinámicamente en la memoria, ya que este comportamiento es de esperar de algunos tipos de malware.

3

algunos perfiladores de CPU realmente hacen una estadística promedio usando OS interrupciones de ... obviamente no pueden hacer esto sin privilegios para ese :)

0

La explicación más probable es que se implementan como depuradores especializados, utilizando la depuración de Win32 API como DebugActiveProcess(). Estas funciones necesitan PROCESS_ALL_ACCESS (como se detalla en la documentación) y espero que necesite derechos de administrador para eso.

IIRC el depurador de Visual Studio no funcionará (correctamente) a menos que tenga derechos de administrador local en su sistema, al menos para C++.

+0

Los usuarios pueden adjuntar un depurador a sus procesos. Solo necesita ser administrador para adjuntarlo al proceso de otro usuario (o a un proceso del sistema). – criddell

Cuestiones relacionadas