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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Intruccion fcmovbe - Orientacion - FPU
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Intruccion fcmovbe - Orientacion - FPU  (Leído 4,087 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Intruccion fcmovbe - Orientacion - FPU
« en: 17 Febrero 2010, 06:28 am »

Bueno, estoy haciendo una investigación, sobre algunas instrucciones poco usuales de ASM, esto es para el análisis de un shellcode sacado con Metasploit, bueno no encuentro buenas referencias sobre la instrucción: fcmovbe

La tengo así en depurador, es AT&T

Código
  1. fcmovbe %st(0),%st

el original de Intel es:
Código
  1. fcmovbe %st,%st(0)

;-) Muchos tienen problemas par distinguir uno de otro pero bueno, eso no es el tema

He dado con esto:

Citar
Conditional move if below or equal
http://www.asmpedia.org/index.php?title=FCMOVBE

Y con algunos manuales de Intel, pero tienen entre 200 y 500 hojas y pfff de aqui a que leo todo para entenderlo, tengo una ligera idea, pero necesito que alguien me pueda confirmar, st es alguna especie de registro, cual es su proposito general.

Yo entiendo esto:
Citar
Si st(0) es memor o igual que st, entonces mueve st(0) a st
:xD no Entiendo.

Alguna buena referencia entendible.

Saludos y gracias


« Última modificación: 17 Febrero 2010, 13:47 pm por Anon » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: Intruccion fcmovbe - Orientacion - FPU
« Respuesta #1 en: 17 Febrero 2010, 08:48 am »

http://en.wikipedia.org/wiki/X87

ST es un pila de 8 registros, de ST(0) a ST(7).


Aca tenes una explicacion mejor me parece:
http://www.rcollins.org/p6/opcodes/FCMOV.html

Y si, no parece ser un opcode muy util el que tenes, por lo que entendi FCMOV siempre que mueve algo lo hace en ST(0) (si usas ST[n] no es un opcode valido por lo que pude ver) asi que indicarle el otro parametro como ST(0) no cambiara nada ... ¿Seguro que es el codigo correcto?


« Última modificación: 17 Febrero 2010, 08:51 am por Eternal Idol » 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
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Intruccion fcmovbe - Orientacion - FPU
« Respuesta #2 en: 17 Febrero 2010, 13:45 pm »

Si tengo el código correcto, es que el mestasploit hace cosas raras :xD en especifico al momento de genera opcodes con msfpayload, en general prefiero crear mis propias shellcodes, sin embargo me pareció interesante analizar una creada por el msf ya que muchos lo usan sin saber que es lo que les arroja verdaderamente

Aqui lo genere:


Y lo estoy analizando aqui:



Se ve que el los opcodes son "\xda\xd0"

y hago un poco de depuración con gdb



Aqui pues las direcciones de stack y otras son las que usa FreeBSD, pero es para darme una idea de lo que hace en general.

Gracias por las referencias, las mirare en un rato mas.

Saludos


En línea

karmany
Colaborador
***
Desconectado Desconectado

Mensajes: 1.614


Sueñas que sueñas


Ver Perfil WWW
Re: Intruccion fcmovbe - Orientacion - FPU
« Respuesta #3 en: 17 Febrero 2010, 20:06 pm »

He hecho unas cuantas pruebas con IDA de punto flotante con la instrucción:

Código:
DA D0  fcmovbe ST(0), ST(0)

Y no le veo lógica ya que el resultado tampoco lo comprendo. Es como hacer:
mov eax, eax siempre sale lo mismo(o eso parece).

Si fuera fcmovbe ST(0), ST(1) pero fcmovbe ST(0), ST(0) no le veo sentido.

Sin embargo, en alguna situación ST(0) ha sido modificado. No lo entiendo muy bien, seguiré buscando info. Si alguien consigue descifrarlo que lo postee.
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