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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Problema con PUSH en Ollydbg
« en: 14 Diciembre 2013, 13:53 pm »

Buenas a todos, estoy leyendo unos tutoriales de Ricardo Narvaja del ollydbg, no se en que lección estoy porque vienen todas juntas, pero estoy leyendo sobre las instrucciones del stack, en concreto sobre la instrucción PUSH, que según entendi sirve para añadir valores al stack. Lo estoy probando con un Crackme que venia con los propios tutoriales y al meterlo en el Ollydbg la primera linea del desemsamblado es un PUSH 0, si me situo en esa línea y la ejecuto, en el stack queda de primero una direccion con el valor 00000000, hasta ahí todo bien, después explica la diferencia entre poner PUSH numerox que poner PUSH [numerox], si pongo PUSH 401008 en el stack queda de primero una direccion con el valor 401008, si busco en el dump la direccion 401008 contiene los valores CA 20 40 00, los que quiero introducir en el stack con la instrucción PUSH [401008] pero cuando la intento introducir en el desensamblador me pone: "Please specify operand size" y no entiendo que quiere decir eso, me fije tambien que en la foto que trae el tutorial en vez de PUSH [401008] pone PUSH DWORD PTR DS: [401008], si lo introduzco de esta manera si que funciona, pero en el tutorial explica que hay que introducir PUSH [401008] únicamente, quería saber si es problema de que algo estoy haciendo mal o el tutorial viene mal explicado.

Saludos
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Problema con PUSH en Ollydbg
« Respuesta #1 en: 14 Diciembre 2013, 14:20 pm »

Hola, al parecer el tutorial viene mal explicado ya que como vez la instrucción:
PUSH DWORD PTR DS: [401008]
Especifica su tamaño, de todas maneras casi el 99% de los casos el tamaño que debes usar es DWORD ya que la pila tiene este tamaño predeterminado.

El DWORD (doble palabra) como comenté, es la forma para que el procesador sepa cuantos datos debe sacar dentro de la dirección 401008, a diferencia de cuando empujas un address o valor directamente, este tiene un tamaño DWORD, saludos y suerte
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Problema con PUSH en Ollydbg
« Respuesta #2 en: 14 Diciembre 2013, 15:09 pm »

En el tutorial viene explicado más abajo, no me fije (mea culpa), que el Olly traduce la instruccion PUSH [401008] por PUSH DWORD PTR DS: [401008] y que el DWORD le indica que debe seleccionar 4 bytes de la dirección de memoria, pero que el usuario debe introducir únicamente PUSH [401008], siendo PUSH DWORD PTR DS: [401008] la forma correcta, ¿que significa PTR DS?

Saludos y gracias.
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Problema con PUSH en Ollydbg
« Respuesta #3 en: 14 Diciembre 2013, 15:20 pm »

El operador PTR permite re-definir el tamaño en bytes de un operando

saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Problema con PUSH en Ollydbg
« Respuesta #4 en: 14 Diciembre 2013, 15:49 pm »

¿Y DS?
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Problema con PUSH en Ollydbg
« Respuesta #5 en: 14 Diciembre 2013, 16:00 pm »

Si mal no me equivoco es la especificación del segmento en donde se encuentran la cantidad de bytes a extraer,

DS = Data section o sección de datos (generalmente .DATA).

Aunque si se sacaran datos desde la sección CS debería ser
PTR CS, pro no sé si esto es aplicado en modo protegido.

PD: Eres muy curioso y eso es muy bueno  ;-)
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Problema con PUSH en Ollydbg
« Respuesta #6 en: 14 Diciembre 2013, 17:07 pm »

Muchas gracias por las aclaraciones, ya me ha quedado claro.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema en Ollydbg « 1 2 »
Ingeniería Inversa
AndyArmin 17 10,607 Último mensaje 9 Marzo 2009, 12:23 pm
por paciente!!
Ollydbg, problema dll.
Ingeniería Inversa
Eaa 4 4,204 Último mensaje 3 Septiembre 2008, 22:32 pm
por Eaa
Problema con OllyDbg
Ingeniería Inversa
DarkStreaM 1 3,068 Último mensaje 20 Febrero 2009, 19:23 pm
por karmany
Problema con Ollydbg
Ingeniería Inversa
bbeettoo 8 5,980 Último mensaje 24 Febrero 2013, 00:52 am
por apuromafo CLS
OllyDBG problema
Ingeniería Inversa
Error 404: 4 3,053 Último mensaje 25 Febrero 2013, 03:58 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines