elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Pusha y popa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pusha y popa  (Leído 3,423 veces)
yourmind

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Pusha y popa
« en: 23 Octubre 2020, 20:05 pm »

Buenos días. Estoy jugando en ollydbg. Por lo que veo en x86 las instrucciones ( PUSHAD y PUSHA => Código: 60) y ( POPAD y POPA => Código: 61) tienen el mismo identificador de instrucción.


Cuando fuerzo en ensamblador escribiendo PUSHA se corrige automaticamente a PUSHADD y lo mismo pasa con POPA que se corrige a PUSHADD. Supongo que depende de otro factor que se utilice una intrucción u otra.
Como puedo forzar la ejecución de estas instrucciones para mover solo 16 bits?

Gracias.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Pusha y popa
« Respuesta #1 en: 23 Octubre 2020, 20:40 pm »

Depende del ensamblador de Olly. En este caso toma lo mismo PUSHA y PUSHAD como operand-size de 32 bits.

La única forma es pushear los valores 1 a 1. No conozco forma de  "forzar" al asm de Olly (aunque no descarto que exista alguna forma).

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.067



Ver Perfil
Re: Pusha y popa
« Respuesta #2 en: 24 Octubre 2020, 01:01 am »

Supongo que dichas instrucciones son interpretadas como pusha o pushad dependiendo de la arquitectura 16-bit o 32-bit, ya que acabo de compilar un exe en 16-bit y otra en 32-bit, y pues siguen siendo 0x60 solo que en el de 16-bit lo interpreta como pusha o pushaw (push all word) y en 32-bit como pushad (push all dword)

Entonces hacer de cuenta que la instrucción 0x60 simplemente hace un push de los registros completos independientemente si está en 16-bit o 32-bit, como mandarle a alguien a comprar 6 panes y ya, dicho comprador no va ha revisar que si los panes son muy grandes solo debería traer la mitad, o si son muy pequeños mejor traer el doble XD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda instrucciones POPAD/POPA
Ingeniería Inversa
criskapunk 3 3,449 Último mensaje 26 Agosto 2010, 15:15 pm
por LSL
El desarrollo del 5G va viento en popa: se probará en la banda 6 GHz
Noticias
wolfbcn 0 1,150 Último mensaje 22 Enero 2015, 21:48 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines