Foros del Web » Programación para mayores de 30 ;) » Programación General »

Capturar Valores en ASM

Estas en el tema de Capturar Valores en ASM en el foro de Programación General en Foros del Web. Perdon Eternal Idol. No creo que todavia me falta mucho, pero voy a tratar con el masm32...

  #31 (permalink)  
Antiguo 16/06/2005, 15:07
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 7 meses
Puntos: 3
Perdon Eternal Idol.
No creo que todavia me falta mucho, pero voy a tratar con el masm32
  #32 (permalink)  
Antiguo 16/06/2005, 15:07
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
External???
  #33 (permalink)  
Antiguo 16/06/2005, 15:10
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por RadicalEd
Perdon Eternal Idol.
No creo que todavia me falta mucho, pero voy a tratar con el masm32
Es que practicamente perdes el tiempo, todo lo que aprendas sobre las interrupciones de MS-DOS no te va a servir para NADA ya que no existen en Windows ni Linux ni ningun otro Sistema Operativo.

Cita:
Iniciado por Developer9
External???
Spammer ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #34 (permalink)  
Antiguo 10/02/2007, 10:20
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Capturar Valores en ASM

Hola Eternal Idol,
necesito que me ayude a construir una o varias rutinas en assembly (MASM64) para capturar los valores que se almacenan en los registros del procesador de 64 bits (RAX,RBX, etc.), pero el problema es que lo necesito capturar de almenos un proceso (o todos) que se esté corriendo en la máquina que no sea el proceso donde se encuentre esta rutina.
Aunque me serviría por el momento capturarlo de un procesador de 32 bits (MASM32). Gracias.
  #35 (permalink)  
Antiguo 10/02/2007, 12:38
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Capturar Valores en ASM

Este hilo es del 2005, seria bueno si algun moderador pudiera crear un nuevo hilo con esta ultima pregunta.

¿Para que necesitas conseguir esos valores? Hago esta pregunta por una razon muy simple: estos valores son constantemente cambiados durante la ejecucion de un proceso. De cualquier manera bajo Windows se usa la funcion GetThreadContext de la API de Windows y es necesario suspender el hilo para el cual se haga la consulta.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #36 (permalink)  
Antiguo 21/02/2007, 08:50
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Capturar Valores en ASM

Hola, gracias por responder a mi pregunta.
Lo que pasa es que me meti en la locura de presentar mi tesis de grado y explicar el funcionamiento de los nuevos registros del procesador de 64 bits, y pretendo demostrar que esos registros si se estan mostrando, los valores que den no importa, solo necesito saber que si se estan ejecutando, y para eso necesito capturar estos valores. Gracias.
De todas formas voy a ver si puedo colocarlo como nuevo tema.
  #37 (permalink)  
Antiguo 21/02/2007, 08:59
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Capturar Valores en ASM

Cita:
Iniciado por Edwin78 Ver Mensaje
pretendo demostrar que esos registros si se estan mostrando, los valores que den no importa, solo necesito saber que si se estan ejecutando, y para eso necesito capturar estos valores. Gracias.
De todas formas voy a ver si puedo colocarlo como nuevo tema.
¿Mostrar los registros? ¿Si se esta ejecutando que? Me parece que estas un poco confundido, o al menos en los conceptos, los registros almacenan valores, no se muestran ni se ejecutan.

De cualquier manera en mi anterior mensaje tenes la funcion que necesitas.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #38 (permalink)  
Antiguo 21/02/2007, 09:14
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Capturar Valores en ASM

P: el registro es de 64 bits !
P: SO 64 bits + Aplicación 64 bits = usa todos los bits (64)
P: SO 64 bits + Aplicación 32 bits = usa la mitad de los bits (32)
Q: Cómo demostrar graficamente esa situación ?
  #39 (permalink)  
Antiguo 21/02/2007, 09:18
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Capturar Valores en ASM

Cita:
Iniciado por Edwin78 Ver Mensaje
P: el registro es de 64 bits !
P: SO 64 bits + Aplicación 64 bits = usa todos los bits (64)
P: SO 64 bits + Aplicación 32 bits = usa la mitad de los bits (32)
Q: Cómo demostrar graficamente esa situación ?
Hay muchos registros, al menos bastantes mas que en x86. Una aplicacion de 32 bits es incapaz de acceder a registros de 64 bits por simple logica: no se ejecuta en long mode ni sus instrucciones llevan el prefijo rex necesario para hacerlo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #40 (permalink)  
Antiguo 21/02/2007, 09:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Capturar Valores en ASM

Necesito llamar desde visual c++ por intrinsics assembly el valor almacenado en c/u de los 16 GPRs para yo saber si la aplicación activa (de 32 bits y/o 64 bits) está utilizando los registros a full o a la mitad (todo sobre el SO de 64, win xp x64).
Como hago en visual c++ para detener el tiempo y pedirle al mP que me devuelva los valores de la aplicación "que yo quiera" ej: antivirus x64, antivirus x32.
cuando digo los valores de la aplicación me refiero a los valores que ella pone en los registros.
  #41 (permalink)  
Antiguo 21/02/2007, 09:37
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Capturar Valores en ASM

Cita:
Iniciado por Edwin78 Ver Mensaje
Necesito llamar desde visual c++ por intrinsics assembly el valor almacenado en c/u de los 16 GPRs para yo saber si la aplicación activa (de 32 bits y/o 64 bits) está utilizando los registros a full o a la mitad (todo sobre el SO de 64, win xp x64).
Como hago en visual c++ para detener el tiempo y pedirle al mP que me devuelva los valores de la aplicación "que yo quiera" ej: antivirus x64, antivirus x32.
No podes usar intrinsics (son del compilador) ya que solo se aplicarian sobre tu ejecutable y no sobre otros procesos (igual que yo sepa no hay ningun para hacer esto). Te dije como hacerlo en el primer mensaje, aca va mas detallado:

1.Obtenes un HANDLE al proceso
2.Comprobas si es de 32 o 64 bits (podes usar IsWow64Process)
3.Detenes un hilo del proceso
4.Obtenes los registros usando la estructura CONTEXT correspondiente (para eso necesitas el paso 2) y la funcion GetThreadContext
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #42 (permalink)  
Antiguo 21/02/2007, 10:32
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Capturar Valores en ASM

bueno, pero tengo algunas inquietudes:

1. Cómo obtengo el handle al proceso?
2. Cómo dentengo el hilo del proceso?

Al detener el hilo del proceso y obtener los registros, el hilo no puede seguir ejecutándose o puede seguir su ejecución normal?, si es así cómo puedo lograr esto?
  #43 (permalink)  
Antiguo 21/02/2007, 10:37
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Capturar Valores en ASM

Cita:
Iniciado por Edwin78 Ver Mensaje
1. Cómo obtengo el handle al proceso?
OpenProcess.

Cita:
Iniciado por Edwin78 Ver Mensaje
2. Cómo dentengo el hilo del proceso?
SuspendThread.

Cita:
Iniciado por Edwin78 Ver Mensaje
Al detener el hilo del proceso y obtener los registros, el hilo no puede seguir ejecutándose o puede seguir su ejecución normal?, si es así cómo puedo lograr esto?
ResumeThread.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:06.