comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Detectar un SO de 64bits

  • 13 Respuestas
  • 4261 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Arkangel

  • *
  • Underc0der
  • Mensajes: 15
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Julio 05, 2013, 03:18:46 pm »
Bueno, se me ocurrio hablando con Zero una manera de detectar desde 32bits si el SO es de 64 y se me ocurrio esto para solucionar su problema
Gracias Zero por preguntar

Código: C++
  1. bool __declspec(naked) is64BitOS(){
  2.     __asm{
  3.         mov eax,fs:[0xC0]
  4.         test eax,eax
  5.         je _32bits
  6.         mov eax,1
  7.       _32bits:
  8.         ret
  9.     }
  10. }
  11.  

Saludos
« Última modificación: Julio 05, 2013, 03:32:49 pm por Arkangel »

Desconectado The Swash

  • *
  • Underc0der
  • Mensajes: 18
  • Actividad:
    0%
  • Reputación 0
  • Return to reversing!
    • Ver Perfil
    • Email
  • Skype: the_swash@outlook.com
« Respuesta #1 en: Julio 05, 2013, 03:27:09 pm »
A dudas interesantes, soluciones interesantes :)
Muy bueno si señor :P

Saludos.

Desconectado Karcrack

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
  • Se siente observado ¬¬'
    • Ver Perfil
« Respuesta #2 en: Julio 05, 2013, 07:17:33 pm »
Me he tomado la libertad de minimizar el código. Soy un maniático  :P
Código: ASM
  1.      xor   eax, eax
  2.      cdq
  3.      xor   edx, [FS:0xC0]
  4.      setnz al
  5.      ret  

Gracias por compartir ;)
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

Desconectado -Nox-

  • *
  • Underc0der
  • Mensajes: 13
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Julio 06, 2013, 01:04:27 am »

Me ha gustado, muy bueno eh!

Saludos,
Nox.

Desconectado Vermillion

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Julio 06, 2013, 05:51:38 pm »
El [FS:0xC0] se puede hacer más pequeño por ser IMM32. No encontré ningún modo más bonito :

Código: ASM
  1.      xor   eax, eax
  2.      cdq
  3.      mov   al, -40
  4.      xor   edx, [FS:eax]
  5.      setnz al
  6.      ret  

Excelente aporte :D
« Última modificación: Julio 06, 2013, 06:56:28 pm por Vermillion »

Desconectado [Zero]

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • H-Sec.org
    • Email
« Respuesta #5 en: Julio 06, 2013, 07:15:12 pm »
Código: ASM
  1. MOV EAX,DWORD PTR FS:[0C0h]
  2. TEST EAX,EAX
  3. SETNE AL
  4. RETN

Mismos bytes pero menos lineas jaja.

Saludos
« Última modificación: Julio 07, 2013, 12:41:51 am por [Zero] »
   
 No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado Karcrack

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
  • Se siente observado ¬¬'
    • Ver Perfil
« Respuesta #6 en: Julio 07, 2013, 06:36:36 pm »
Muy bueno Vermillion, yo probé usando fs[eax+$C0] pero al ser mayor que $7F se seguían gastando 4 bytes para el inmediato ^^ Muy listo usando al :D
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
    • Ver Perfil
  • Skype: lordrna
  • Twitter: lordrna
« Respuesta #7 en: Julio 08, 2013, 12:01:23 am »
Menos bytes... En C/C++ todo valor diferente de 0 es true :P

Código: ASM
  1. MOV EAX,DWORD PTR FS:[0C0h]
  2. RETN

Desconectado [Zero]

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • H-Sec.org
    • Email
« Respuesta #8 en: Julio 08, 2013, 01:13:02 am »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Menos bytes... En C/C++ todo valor diferente de 0 es true :P

Código: ASM
  1. MOV EAX,DWORD PTR FS:[0C0h]
  2. RETN

Eso es trampa :P .
   
 No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
    • Ver Perfil
  • Skype: lordrna
  • Twitter: lordrna
« Respuesta #9 en: Julio 08, 2013, 10:18:51 am »
Trampa... :P Claro que no. Es legal.

Desconectado Karcrack

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
  • Se siente observado ¬¬'
    • Ver Perfil
« Respuesta #10 en: Julio 08, 2013, 11:04:04 am »
No sólo es trampa sino que no funcionará. Haciendo esto:
Código: C++
  1. bool __declspec(naked) is64(){
  2.         __asm{
  3.                 mov eax, fs:[0xC0]
  4.                 ret
  5.         }
  6. }
El compilador solo comprobará al para ver el valor booleano.

Haciendo esto sí que serviría:
Código: C++
  1. bool Is64(){
  2.         return __readfsdword(0xC0);
  3. }
Aunque salta un warning diciendo que habrá pérdidas de rendimiento al hacer el casting forzoso.

Saludos ^^
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
    • Ver Perfil
  • Skype: lordrna
  • Twitter: lordrna
« Respuesta #11 en: Julio 09, 2013, 11:37:31 am »
-_-... lee las etiquetas. Dice ASM

Desconectado Pr0ph3t

  • *
  • Underc0der
  • Mensajes: 443
  • Actividad:
    0%
  • Reputación 0
  • © Underc0de Team
    • Ver Perfil
  • Skype: thebrowfc
« Respuesta #12 en: Julio 09, 2013, 11:44:31 am »
Muy bueno, a ver si haceis un taller de ASM  :P
Twitter: @The_Pr0ph3t
pr0ph3t@hotmail.es

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
    • Ver Perfil
  • Skype: lordrna
  • Twitter: lordrna
« Respuesta #13 en: Julio 10, 2013, 12:32:29 am »
Si los juntas a todos y los pones a trabajar a tiempo completo, en 15 años tendras el tuto.

 

¿Te gustó el post? COMPARTILO!



[FASM][64bits]Detección de emuladores usando Heaven's gate

Iniciado por Karcrack

Respuestas: 0
Vistas: 1496
Último mensaje Julio 19, 2013, 01:27:28 pm
por Karcrack