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)
| | | |-+  Equivalencia de __ftol2_sse en MASM
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Equivalencia de __ftol2_sse en MASM  (Leído 4,178 veces)
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Equivalencia de __ftol2_sse en MASM
« en: 8 Febrero 2010, 05:50 am »

Hola!

Estoy pasando un código de VC 2008 a MASM y me he encontrado con lo siguiente:
Código:
FLD QWORD PTR SS:[EBP-24]
MOV ESI,EAX
CALL 20375090 ;__ftol2_sse
CDQ

Según tengo entendido, esta función se encarga de convertir un Float en Dword. El problema es que no encuentro ninguna macro o función que me permita hacer lo mismo que hace esta función en MASM.

¿ Alguien tiene alguna idea ?


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: Equivalencia de __ftol2_sse en MASM
« Respuesta #1 en: 8 Febrero 2010, 08:07 am »

Directo del WinDbg:
Código
  1. floating!_ftol2_sse:
  2. 00401260 833d7093420000  cmp     dword ptr [x!__sse2_available (00429370)],0 ds:0023:00429370=00000001
  3. 00401267 742d            je      x!_ftol2 (00401296)
  4. floating!_ftol2_pentium4:
  5. 00401269 55              push    ebp
  6. 0040126a 8bec            mov     ebp,esp
  7. 0040126c 83ec08          sub     esp,8
  8. 0040126f 83e4f8          and     esp,0FFFFFFF8h
  9. 00401272 dd1c24          fstp    qword ptr [esp]
  10. 00401275 f20f2c0424      cvttsd2si eax,mmword ptr [esp]
  11. 0040127a c9              leave
  12. 0040127b c3              ret

De igual manera podes encontrar _ftol2.


« Última modificación: 8 Febrero 2010, 08:09 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
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Equivalencia de __ftol2_sse en MASM
« Respuesta #2 en: 8 Febrero 2010, 21:52 pm »

Gracias Ethernal Idol!!

Aunque ya habia hecho una implementación en base a OllyDbg.

Me quedó asi:

Código:
ftol2 proc  

; local tmp:DWORD

; fistp tmp
; mov eax, tmp
; ret



    push ebp
    mov ebp,esp
    sub esp,020h
    and esp,0fffffff0h
    fld st
    fst dword ptr ss:[esp+018h]
    fistp qword ptr ss:[esp+010h]
    fild qword ptr ss:[esp+010h]
    mov edx,dword ptr ss:[esp+018h]
    mov eax,dword ptr ss:[esp+010h]
    test eax,eax
    je @Converte_20375125

@Converte_203750E9:

    fsubp st(1),st
    test edx,edx
    jns @Converte_2037510D
    fstp dword ptr ss:[esp]
    mov ecx,dword ptr ss:[esp]
    xor ecx,080000000h
    add ecx,07fffffffh
    adc eax,0
    mov edx,dword ptr ss:[esp+014h]
    adc edx,0
    jmp @Converte_20375139

@Converte_2037510D:

    fstp dword ptr ss:[esp]
    mov ecx,dword ptr ss:[esp]
    add ecx,07fffffffh
    sbb eax,0
    mov edx,dword ptr ss:[esp+014h]
    sbb edx,0
    jmp @Converte_20375139

@Converte_20375125:

    mov edx,dword ptr ss:[esp+014h]
    test edx,07fffffffh
    jnz @Converte_203750E9
    fstp dword ptr ss:[esp+018h]
    fstp dword ptr ss:[esp+018h]

@Converte_20375139:

    leave
    retn                                     ;<= Procedure End
ftol2 endp

(Es el código que viene luego del Je tuyo de 401267, es por si la PC no tiene SSE2)

De todas formas, nuevamente, Gracias  ;D

PD: Lo comentado es una versión "reducida", pero tiene falencias...  :silbar:
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: Equivalencia de __ftol2_sse en MASM
« Respuesta #3 en: 8 Febrero 2010, 21:59 pm »

De nada y si como te decia de igual manera podias encontrar _ftol2.
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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MASM] Busca offsets
ASM
xassiz~ 5 5,182 Último mensaje 12 Febrero 2011, 00:53 am
por xassiz~
Saltar a direccion absoluta MASM
ASM
Riki_89D 0 2,482 Último mensaje 29 Abril 2011, 23:50 pm
por Riki_89D
masm, msvcrt.
ASM
_Enko 5 5,137 Último mensaje 1 Diciembre 2011, 19:23 pm
por Eternal Idol
IDE EasyCode MASM
ASM
_Enko 2 4,557 Último mensaje 24 Diciembre 2011, 17:37 pm
por Иōҳ
Programar en MASM sugerencia Diferencia entre MASM y MASM32
ASM
kisk 1 3,544 Último mensaje 7 Enero 2018, 23:59 pm
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines