es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo el ID del proceso desde un archivo de volcado de memoria del sistema con PyKd.

Estoy analizando muchos volcados de memoria con Pykd y me gustaría obtener el ID del proceso (PID) del volcado de memoria.

En WinDbg, utilizaría el comando “|” y usaría mi cerebro para resolverlo. Después de un tiempo, se me ocurriría un comando como

.foreach /pS 3 /ps 999 (pid {|}) {.echo ${pid}}

que extrae el ID del proceso para mí.

Si fuera un poco más inteligente, utilizaría un pseudo registro en su lugar:

.printf “%p”, $tpid

¿Cómo puedo usar PyKD para obtener el ID del proceso de un archivo de volcado de memoria en modo de usuario (.dmp)?

Por supuesto, siempre puedo utilizar pykd.dbgCommand(), pero me gustaría utilizar una forma integrada más robusta.

He intentado:

pykd.getCurrentProcessId() pero devuelve 0.

pykd.reg(“tpid”) pero dice “Nombre de registro no válido”.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener el ID de proceso de un archivo de volcado de bloqueo en modo usuario utilizando PyKD, puedes usar la función pykd.getProcessSystemId(). Esta función toma la dirección de un proceso como parámetro y devuelve el ID de proceso a nivel del sistema asociado con él.

    Aquí tienes un ejemplo de código utilizando PyKD para recuperar el ID de proceso de un archivo de volcado de bloqueo:

    import pykd
    
    # Abrir el archivo de volcado de bloqueo
    pykd.loadDump("C:\\ruta\\al\\archivo_de_volcado.dmp")
    
    # Obtener la dirección del proceso desde el archivo de volcado de bloqueo
    direccion_proceso = pykd.getOffset("nt!PsInitialSystemProcess")
    
    # Obtener el ID de proceso a nivel del sistema asociado con la dirección del proceso
    ID_proceso = pykd.getProcessSystemId(direccion_proceso)
    
    # Imprimir el ID de proceso
    print("ID de proceso:", ID_proceso)
    

    Esto cargará el archivo de volcado de bloqueo, recuperará la dirección del proceso inicial del sistema y luego utilizará pykd.getProcessSystemId() para obtener el ID de proceso asociado con esa dirección. El ID de proceso luego se imprimirá en la consola.

Comments are closed.