[SOLUCIONADO] Estoy entendiendo bien el uso de esp, ebp y el stack

Iniciado por proxy_lainux, Agosto 13, 2013, 01:38:43 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 13, 2013, 01:38:43 AM Ultima modificación: Febrero 08, 2014, 05:27:57 PM por Expermicid
hola

estaba estudiando con los videos de security training, pero me surgio una duda sobre el uso de funciones y el stack

voy a poner un ejemplo de como es que yo entiendo que trabaja esp y ebp, para utilizar funciones

Código: asm
push 12  
push 20
---------------------
|12| 12 bytes  <<-------------       
|20| 8 bytes     <<-------------       
|ret| 4 bytes  <<-------------       
--------------------------

call suma

----------------------------

suma:
push ebp

|12| 12 bytes              <<-------------       
|20| 8 bytes                <<-----------------------
|ret| 4 bytes               <<-------------       
|EBP| - antigua direccion           <<-------------       
--------------------------

mov ebp, esp

|ret| 4 bytes                                                   <<-------------       
|EBP|  - antigua direccion - 4 bytes              <<-------------
|12| 8 bytes                                                   <<-------------       
|20| 12 bytes                                             <<-------------       

mov ah, 1
mov bh, 4
mov cx, [ebp - 8]
mov dx, [ebp - 12]
add cx, dx
int 0x80
--------------------------

mov esp, ebp

|12| 12 bytes                       <<-------------       
|20| 8 bytes                         <<-------------       
|ret| 4 bytes                          <<-------------       
|EBP| - antigua direccion           <<-------------       
-------------------------------

pop ebp

|12| 12 bytes           <<-------------       
|20| 8 bytes             <<-------------       
|ret| 4 bytes            <<-------------       

---------------

salida del programa

mov ah, 1
int 0x80

--------------------------



espero me puedan decir si estoy bien, o estoy equivocado, y ojala alguien pueda explicarme como funciona en realidad

salu2

No entiendo tu código, es imposible que te ensamble. Podrías formular correctamente cual es tu duda?


no es un codigo completo, solo intento saber si estoy usando de forma correcta EBP y ESP, el codigo lo puse como seguimiento de la explicacion, y solo necesito saber si mi explicacion es correcta

push ebp
mov ebp, esp

mov esp, ebp
pop ebp

en otras palabras, "teoricamente", estoy entendiendo como funciona EBP y ESP en el stack?, si quieren no vean el codigo, mi duda esta en medio de "| |"




Citarsi estas bien amigo sigue asi y seras alguen en la vida ;D

jajaja ok gracias  ;D

Doy por solucionado, cualquier cosa mandame un mp que lo vulevo a abrir si aun te quedan dudas :)

Saludos