comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

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

  • 5 Respuestas
  • 1692 Vistas

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

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 120
  • Actividad:
    3.33%
  • Reputación 0
    • Ver Perfil
« en: Agosto 13, 2013, 01:38:43 am »
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
  1. push 12  
  2. push 20
  3. ---------------------
  4.  |12| 12 bytes  <<-------------      
  5.  |20| 8 bytes     <<-------------      
  6.  |ret| 4 bytes  <<-------------      
  7. --------------------------
  8.  
  9. call suma
  10.  
  11. ----------------------------
  12.  
  13. suma:
  14. push ebp
  15.  
  16.  |12| 12 bytes              <<-------------      
  17.  |20| 8 bytes                <<-----------------------
  18.  |ret| 4 bytes               <<-------------      
  19.  |EBP| - antigua direccion           <<-------------      
  20. --------------------------
  21.  
  22. mov ebp, esp
  23.  
  24.  |ret| 4 bytes                                                   <<-------------      
  25.  |EBP|  - antigua direccion - 4 bytes              <<-------------
  26.  |12| 8 bytes                                                   <<-------------      
  27.  |20| 12 bytes                                             <<-------------      
  28.  
  29. mov ah, 1
  30. mov bh, 4
  31. mov cx, [ebp - 8]
  32. mov dx, [ebp - 12]
  33. add cx, dx
  34. int 0x80
  35. --------------------------
  36.  
  37. mov esp, ebp
  38.  
  39.  |12| 12 bytes                       <<-------------      
  40.  |20| 8 bytes                         <<-------------      
  41.  |ret| 4 bytes                          <<-------------      
  42.  |EBP| - antigua direccion           <<-------------      
  43. -------------------------------
  44.  
  45. pop ebp
  46.  
  47.  |12| 12 bytes           <<-------------      
  48.  |20| 8 bytes             <<-------------      
  49.  |ret| 4 bytes            <<-------------      
  50.  
  51. ---------------
  52.  
  53. salida del programa
  54.  
  55. mov ah, 1
  56. int 0x80
  57.  
  58. --------------------------
  59.  
  60.  

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

salu2
« Última modificación: Febrero 08, 2014, 05:27:57 pm por Expermicid »

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #1 en: Agosto 13, 2013, 09:47:42 pm »
No entiendo tu código, es imposible que te ensamble. Podrías formular correctamente cual es tu duda?


Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 120
  • Actividad:
    3.33%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Agosto 13, 2013, 10:21:34 pm »
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 "| |"



Desconectado infex

  • *
  • Underc0der
  • Mensajes: 4
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Agosto 13, 2013, 10:57:50 pm »
si estas bien amigo sigue asi y seras alguen en la vida ;D

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 120
  • Actividad:
    3.33%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Agosto 13, 2013, 11:14:27 pm »
Citar
si estas bien amigo sigue asi y seras alguen en la vida ;D

jajaja ok gracias  ;D

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« Respuesta #5 en: Agosto 13, 2013, 11:35:08 pm »
Doy por solucionado, cualquier cosa mandame un mp que lo vulevo a abrir si aun te quedan dudas :)

Saludos

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6996
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1588
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2182
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2838
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3414
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon