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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda con Stack Pointer (Registro 13)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con Stack Pointer (Registro 13)  (Leído 3,117 veces)
JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Duda con Stack Pointer (Registro 13)
« en: 26 Marzo 2014, 23:11 pm »

Como bien es sabido, al utilizar subrutinas, se debe preservar el valor del SP. Me preguntaba que pasaría si no se preservara dicho valor... supongo que llegaría un momento en la memoria que la pila seguiría subiendo hasta mezclarse con el propio código ASM y entonces, ¿qué ocurriría? quiero decir, ¿qué efectos produce eso en un ordenador?

Me pica la curiosidad.


En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda con Stack Pointer (Registro 13)
« Respuesta #1 en: 27 Marzo 2014, 00:15 am »

Prácticamente, si cambias la pila y la dejas mal cuando estás dentro de una subrutina, el ret no retornará a la dirección correcta, generalmente,


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda con Stack Pointer (Registro 13)
« Respuesta #2 en: 27 Marzo 2014, 01:12 am »

Eso mismo hubiera dicho pero esto es para ARM (y no para PC como practicamente todo en este subforo).

SP, the Stack Pointer

Register R13 is used as a pointer to the active stack.

In Thumb code, most instructions cannot access SP. The only instructions that can access SP are those designed to use SP as a stack pointer. The use of SP for any purpose other than as a stack pointer is deprecated. Note Using SP for any purpose other than as a stack pointer is likely to break the requirements of operating systems, debuggers, and other software systems, causing them to malfunction.

LR, the Link Register

Register R14 is used to store the return address from a subroutine. At other times, LR can be used for other purposes.

When a BL or BLX instruction performs a subroutine call, LR is set to the subroutine return address. To perform a subroutine return, copy LR back to the program counter. This is typically done in one of two ways, after entering the subroutine with a BL or BLX instruction:

• Return with a BX LR instruction.

• On subroutine entry, store LR to the stack with an instruction of the form: PUSH {,LR} and use a matching instruction to return: POP {,PC} ...

http://stackoverflow.com/questions/8236959/what-are-sp-stack-and-lr-in-arm
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Duda con Stack Pointer (Registro 13)
« Respuesta #3 en: 27 Marzo 2014, 23:50 pm »

Tambien intentarias escribir en una direccion sin permisos de escritura y lectura y tu binario "crashearia". Supongo que en ARM seria igual.

Un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pointer a función (C y VB6)
Ingeniería Inversa
calk9 3 3,039 Último mensaje 14 Noviembre 2013, 02:43 am
por calk9
Duda con heap, stack
Programación C/C++
SARGE553413 9 6,249 Último mensaje 10 Enero 2014, 13:55 pm
por SARGE553413
Implementar Stack Trace (Walk through stack)
ASM
kub0x 5 3,971 Último mensaje 16 Marzo 2014, 19:21 pm
por Arkangel_0x7C5
Duda con la pila (stack)
ASM
exploiterstack 5 4,627 Último mensaje 29 Mayo 2015, 15:15 pm
por xv0
Duda existencial Struct pointer
Programación C/C++
DMT 2 2,242 Último mensaje 24 Junio 2016, 07:38 am
por DMT
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines