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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  ¿Como puedo acceder a direcciones de memoria sin usar eax?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como puedo acceder a direcciones de memoria sin usar eax?  (Leído 5,914 veces)
Avoidance25

Desconectado Desconectado

Mensajes: 12


inot !!!


Ver Perfil
¿Como puedo acceder a direcciones de memoria sin usar eax?
« en: 10 Noviembre 2009, 17:59 pm »

Lo que quiero hacer es una funcion que me trabaje sobre 3 cadenas de texto, y que se le den las direcciones de memoria en las que comienzan las cadenas como argumentos.

Algo asi:
Código
  1. ;void MiFuncion(char *string1, char *string2, char *string3);
  2. proc MiFuncion  string1, string2, string3
  3.  
  4.        ret
  5. endp

Ahora, lo que NO quiero es tener que guardar estas direcciones de memoria en eax para acceder a la memoria, ya que tendria que estar rotando las 3 cadenas por eax.
¿Hay alguna forma de acceder a la direccion de memoria a la que apunta el contenido de una variable?. Tenia entendido que esto se puede lograr si no se usan los [], pero probe de muchisimas maneras y no me funciono :(


En línea

--Recuerda siempre que eres único… Exactamente igual que todos los demás.
--Diplomacia es el arte de decir “bonito perrito”… hasta que puedas encontrar una piedra.
--Morir es como dormir, pero sin levantarse a hacer pis.
--En las guerras, los soldados reciben las balas y los generales las medallas.
YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #1 en: 10 Noviembre 2009, 18:24 pm »

Existen mas registros que eax , puedes mover una a ebx otra a edi y otra a esi :P


En línea



Yo le enseñe a Kayser a usar objetos en ASM
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #2 en: 10 Noviembre 2009, 19:29 pm »

Antes que todo... estas seguro que sabes programar en ASM, te recomiendo que leas sobre los registros y sobre el Stack
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #3 en: 10 Noviembre 2009, 21:46 pm »

Pues EAX es el registro mas usado... :rolleyes:

Puedes intentarlo con ECX ó EDX ó el que mas te guste (trata de no tocar EIP  ;D)

Ahora, cuando salgas con algo como: "no quiero usar el stack", ahi si... cambia de lenguaje  :xD

Saludos!
En línea

MCKSys Argentina

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

Avoidance25

Desconectado Desconectado

Mensajes: 12


inot !!!


Ver Perfil
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #4 en: 10 Noviembre 2009, 22:37 pm »

Existen mas registros que eax , puedes mover una a ebx otra a edi y otra a esi :P
Ahhh, muchas gracias, voy a hacerlo de esa manera. Solo es que pensaba que se podia acceder directamente.....

Antes que todo... estas seguro que sabes programar en ASM, te recomiendo que leas sobre los registros y sobre el Stack
Pues obviamente estoy aprendiendo, si lo supiera todo no estaria preguntando.

Puedes intentarlo con ECX ó EDX ó el que mas te guste (trata de no tocar EIP  ;D)
Ya entendi este punto con el mensaje de YST, grax.

Ahora, cuando salgas con algo como: "no quiero usar el stack", ahi si... cambia de lenguaje  :xD
¿Que tiene de malo ASM?. De todas formas no pienso hacer todo el programa en ASM, solo la parte que de otra forma tardaria mucho tiempo en ejecutarse.




Pero la gran p***, se que la pregunta es de un principiante, pues en ASM eso soy, pero no es necesario que respondan de manera negativa. Todos fueron principiantes alguna vez, no?
En línea

--Recuerda siempre que eres único… Exactamente igual que todos los demás.
--Diplomacia es el arte de decir “bonito perrito”… hasta que puedas encontrar una piedra.
--Morir es como dormir, pero sin levantarse a hacer pis.
--En las guerras, los soldados reciben las balas y los generales las medallas.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #5 en: 11 Noviembre 2009, 01:27 am »

El tema no es la pregunta, sinó el tipo de pregunta.

¿ Porqué no quieres usar EAX ?  :huh:

Eso no tiene lógica... Por eso las respuestas. ;D

Saludos!


En línea

MCKSys Argentina

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

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #6 en: 11 Noviembre 2009, 01:37 am »

El tema no es la pregunta, sinó el tipo de pregunta.

¿ Porqué no quieres usar EAX ?  :huh:

Eso no tiene lógica... Por eso las respuestas. ;D

Es que hay que leer el hilo completo no solo el titulo  ;)
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
Avoidance25

Desconectado Desconectado

Mensajes: 12


inot !!!


Ver Perfil
Re: ¿Como puedo acceder a direcciones de memoria sin usar eax?
« Respuesta #7 en: 11 Noviembre 2009, 15:43 pm »

El tema no es la pregunta, sinó el tipo de pregunta.

¿ Porqué no quieres usar EAX ?  :huh:

Eso no tiene lógica... Por eso las respuestas. ;D

Saludos!
No quiero usar eax porque necesito manejar 3 punteros de memoria. Sobre todo hice esta pregunta porque pensaba que se podia acceder a la memoria directamente, de hecho, creo que utilizaba variables de esta manera antes (hace mucho tiempo usaba ASM de 16 bits, y no volvi a tocar ASM hasta hace unos pocos dias).

Y se que puedo ir rotando, pero si hago el programa (o esta parte del programa al menos) en ASM es porque necesito que sea rapido, y si hay una forma de acceder directamente a estas direcciones de memoria me viene perfecto.



En fin, si no se puede hacer de esta manera voy a usar eax, ebx y edx.
En línea

--Recuerda siempre que eres único… Exactamente igual que todos los demás.
--Diplomacia es el arte de decir “bonito perrito”… hasta que puedas encontrar una piedra.
--Morir es como dormir, pero sin levantarse a hacer pis.
--En las guerras, los soldados reciben las balas y los generales las medallas.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines