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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  asm en c++ (Devolver variable con return) ayuda.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: asm en c++ (Devolver variable con return) ayuda.  (Leído 2,380 veces)
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
asm en c++ (Devolver variable con return) ayuda.
« en: 12 Enero 2015, 02:52 am »


Hola, de entrada decirles que no se ni pajolera idea de asm... por eso mi pregunta.

Como consigo hacer el return de la variable "primero" ?


Código:
char lanzar(){

char primero = 0;

__asm{

call des
des :
pop primero


}
return primero;
}


En línea

70N1
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.755


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


Ver Perfil WWW
Re: asm en c++ (Devolver variable con return) ayuda.
« Respuesta #1 en: 12 Enero 2015, 05:34 am »

Moviendo el valor de primero al registro AL.


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
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: asm en c++ (Devolver variable con return) ayuda.
« Respuesta #2 en: 12 Enero 2015, 14:44 pm »

Me puedes poner el ejemplo bien comentado?.
En línea

70N1
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.963


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: asm en c++ (Devolver variable con return) ayuda.
« Respuesta #3 en: 12 Enero 2015, 15:10 pm »

Hola!

No entiendo bien qué quieres hacer:

Estás intentando devolver el valor que tiene la variable dentro de la función o la dirección de memoria en la que está?

Al ser una variable local, lo más probable es que esté en el stack, por lo que va a destruirse al salir de la función (en realidad no se destruye, pero esa dirección seguramente será machacada por el código siguiente.).

Si es por devolver el valor, como dijo Eternal Idol:

Código
  1. char lanzar(){
  2.  
  3. char primero = 0;
  4.  
  5. __asm{
  6. mov al, primero
  7. }
  8. }
  9.  
En línea

MCKSys Argentina

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

70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: asm en c++ (Devolver variable con return) ayuda.
« Respuesta #4 en: 12 Enero 2015, 15:50 pm »

Lo que intento es obfuscar este codigo.


Código:
DWORD prueba       = 0;

// *** The following code gets EIP register value and stores into primero
   __asm call andro
   __asm   andro:
   
   __asm   pop primero


prueba = (DWORD)(*(DWORD *)(--primero));
En línea

70N1
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: asm en c++ (Devolver variable con return) ayuda.
« Respuesta #5 en: 12 Enero 2015, 19:19 pm »

las funciones retornan el valor en eax.

Si colocas:

Código:
...codigo obfuscado
mov al, valor
... codigo obfuscado
retn

Cuando alguien depure tu programa va a tener:
Código:
codigo
call tu_procedimiento ; con codigo obfuscado
<---- al tendrá el valor de retorno
codigo

No importa lo que pongas en la obfuscacion, el valor de retorno estará en eax.
Tendrás mas "suerte" usando variable global o pasando el parametro por referencia.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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