x64 visual microsoft c++ visual-studio-2008 visual-c++ openprocess

visual - VC++ 2008, OpenProcess siempre devuelve el error 5(Acceso denegado)



microsoft visual c++ 2017 (3)

¿Qué proceso es? Es probable que la apertura de un servicio o un proceso en otra sesión de usuario devuelva acceso denegado (5). Se abrirá un proceso en otra sesión para leer, pero no podrá depurarlo. Es una razón por la cual Windbg tiene la conexión no intrusiva. Funciona en todas las sesiones de usuario. En realidad no estás depurando. Suspende todos los hilos y está leyendo la memoria.

¿Alguien sabría por qué MSVC ++ 2008 siempre devuelve el error 5 en GetLastError () cuando intento llamar a OpenProcess con PROCESS_ALL_ACCESS como mi acceso deseado? PROCESS_VM_READ funciona bien. Soy un administrador en esta computadora y funciona bien en Dev C ++.

¿Debo establecer una opción en alguna parte?


Abrir un proceso con derechos de acceso completo puede ser una operación altamente privilegiada si no se trata de un proceso que se ejecuta bajo sus credenciales o en su sesión de inicio de sesión; deberá seguir este tipo de documentación desde MSDN:

Para abrir un identificador a otro proceso y obtener derechos de acceso completos, debe habilitar el privilegio SeDebugPrivilege. Para obtener más información, vea Cambiar privilegios en un token.

Recuerde que incluso si tiene un privilegio, en la mayoría de los casos, el privilegio no está habilitado; debe estar específicamente habilitado en el código que intenta usar el privilegio.


Otra cosa que podría estar causando esto es nuevo en Vista:

Windows Vista presenta procesos protegidos para mejorar el soporte para la gestión de derechos digitales. El sistema restringe el acceso a los procesos protegidos y los hilos de los procesos protegidos.

Los siguientes derechos de acceso estándar no se permiten desde un proceso a un proceso protegido:

READ_CONTROL WRITE_DAC WRITE_OWNER