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”.
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:
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.