SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: L3andro en Sábado 21 de Julio de 2007, 09:43

Título: [duda] Como Ver El Pid & Tid De Un Proceso
Publicado por: L3andro en Sábado 21 de Julio de 2007, 09:43
Buenas noches, me gustaria saber si alguien puede indicarme como hago para ver el PID y TID de un Proceso en mi ordenador, el PID puedo verlo desde el TaskManager o desde el Process Viewer el cual me muestra el PID de cada proceso en ejecucion en mi PC, pero como puedo hacer para llegar a saber cual es el Thread ID del Proceso?

 Desde ya muchas gracias muchachos.
Saludos.
Título: Re: [duda] Como Ver El Pid & Tid De Un Proceso
Publicado por: Eternal Idol en Sábado 21 de Julio de 2007, 23:25
Un proceso no tiene TID por obvias razones, un proceso si tiene cuanto menos un hilo y cada hilo tiene un TID.

Usa el Process Explorer (http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx).
Título: Re: [duda] Como Ver El Pid & Tid De Un Proceso
Publicado por: L3andro en Domingo 22 de Julio de 2007, 01:30
Cita de: "Eternal Idol"
Un proceso no tiene TID por obvias razones, un proceso si tiene cuanto menos un hilo y cada hilo tiene un TID.

Usa el Process Explorer (http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx).
Te haceguro que me aclaraste MUCHISIMO mas todo el panorama master. Muchisimas gracias por la ayuda, y por pasarme el Process Explorer.

Saludos master y gracias denuevo :D
Título: Re: [duda] Como Ver El Pid & Tid De Un Proceso
Publicado por: Eternal Idol en Domingo 22 de Julio de 2007, 04:35
Cita de: "L3andro"
Te haceguro que me aclaraste MUCHISIMO mas todo el panorama master. Muchisimas gracias por la ayuda, y por pasarme el Process Explorer.

Saludos master y gracias denuevo :D
De nadas  :smartass:
Título: Re: [duda] Como Ver El Pid & Tid De Un Proceso
Publicado por: mjesun en Jueves 23 de Agosto de 2007, 20:40
de hecho, creo que los propios programas son threads a su vez del SO.. o algo asi... al desensamblar un programa, la ultima llamada a una API que hace windows antes de pasarle el puntero al programa, es un ZWSetInformationThread...

no me hagan mucho caso; realmente no se si la llamada es para el hilo principal del proceso, o para el proceso en si
Título: Re: [duda] Como Ver El Pid & Tid De Un Proceso
Publicado por: Eternal Idol en Jueves 23 de Agosto de 2007, 21:54
Cita de: "mjesun"
de hecho, creo que los propios programas son threads a su vez del SO.. o algo asi... al desensamblar un programa, la ultima llamada a una API que hace windows antes de pasarle el puntero al programa, es un ZWSetInformationThread...

no me hagan mucho caso; realmente no se si la llamada es para el hilo principal del proceso, o para el proceso en si
No, basicamente un proceso es un programa en ejecucion. Todo proceso tiene cuanto menos un hilo principal y puede crear otros, estos son hilos de modo Usuario.

En cuanto a lo que hace el loader es esto:
Código: Text
  1.  
  2. push    4
  3. lea     eax, [ebp+8]
  4. push    eax
  5. push    9
  6. push    0FFFFFFFEh
  7. call    dword ptr [kernel32!_imp__NtSetInformationThread]
  8. call    dword ptr [ebp+8]
  9. push    eax
  10. call    kernel32!ExitThread
  11.  
  12.  

Teniendo en cuenta que 0xFFFFFFFE es un pseudo-HANDLE al hilo actual y que el 9 es ThreadQuerySetWin32StartAddress, vemos que lo que hace esa llamada es en realidad asignar la direccion del entry point al hilo y posteriormente llamarla. Cuando nuestro ejecutable retorne se cerrara el hilo principal con el valor devuelto. Las llamadas en Windows suelen estar claramente identificadas en su nombre y esta es para hilos.