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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}  (Leído 8,037 veces)
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
[SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« en: 16 Septiembre 2009, 22:11 pm »

Código
  1. 'NTDLL
  2. Private Declare Function RtlGetVersion Lib "NTDLL" (ByRef lpVersionInformation As Long) As Long
  3.  
  4. Private Function NativeGetVersion() As String
  5.    Dim tOSVw(&H54)     As Long
  6.  
  7.    tOSVw(0) = &H54 * &H4
  8.    Call RtlGetVersion(tOSVw(0))
  9.  
  10.    NativeGetVersion = Join(Array(tOSVw(4), tOSVw(1), tOSVw(2)), ".")
  11. End Function
  12.  
  13. Public Function VersionToName(ByVal sVersion As String) As String
  14.    Select Case sVersion
  15.        Case "1.0.0":     VersionToName = "Windows 95"
  16.        Case "1.1.0":     VersionToName = "Windows 98"
  17.        Case "1.9.0":     VersionToName = "Windows Millenium"
  18.        Case "2.3.0":     VersionToName = "Windows NT 3.51"
  19.        Case "2.4.0":     VersionToName = "Windows NT 4.0"
  20.        Case "2.5.0":     VersionToName = "Windows 2000"
  21.        Case "2.5.1":     VersionToName = "Windows XP"
  22.        Case "2.5.3":     VersionToName = "Windows 2003 (SERVER)"
  23.        Case "2.6.0":     VersionToName = "Windows Vista"
  24.        Case "2.6.1":     VersionToName = "Windows 7"
  25.        Case Else:        VersionToName = "Unknown"
  26.    End Select
  27. End Function

Ejemplo para llamarla:
Código:
MsgBox VersionToName(NativeGetVersion)

Esta en distintas funciones para que, por ejemplo, el servidor envie solo lo que devuelve NativeGetVersion y luego el cliente interprete los numeros con VersionToName... :rolleyes:

Lleva un tiempo en HackHound y en AdvanceVB... se me olvido ponerla aqui.... lo siento :-[ :xD

Código:
http://www.advancevb.com.ar/?p=255
http://hackhound.org/forum/index.php?topic=21559.msg133308#msg133308

Saludos ;)


« Última modificación: 16 Septiembre 2009, 22:14 pm por Karcrack » En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 859



Ver Perfil
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #1 en: 17 Septiembre 2009, 01:20 am »

Gracias ... una buena manera de saber exactamente el SO ....




En línea

agus0


Desconectado Desconectado

Mensajes: 360



Ver Perfil
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #2 en: 17 Septiembre 2009, 02:29 am »

Gracias Esta mejor que el que hice yo  ;-) ;-) ;-)
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #3 en: 17 Septiembre 2009, 03:29 am »

Yo opino que si es NT es mejor sacarlo directo del registro :P
En línea



Yo le enseñe a Kayser a usar objetos en ASM
agus0


Desconectado Desconectado

Mensajes: 360



Ver Perfil
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #4 en: 17 Septiembre 2009, 06:39 am »

y como sabes que es nt o no?

y por que decis que es mejor?
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #5 en: 17 Septiembre 2009, 07:06 am »

y como sabes que es nt o no?

y por que decis que es mejor?
Con el mismo registro puedes saber si es NT o no(si falla no es NT ) :xD , digo que es mejor por que en el registro ya esta escrito directamente que version del SO es entre otras cosas ( si es ultimate o home basic aparece en el registro por ejemplo ) :P

Para ser mas expesifico en la clave :
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
« Última modificación: 17 Septiembre 2009, 07:14 am por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #6 en: 17 Septiembre 2009, 07:27 am »

y como sabes que es nt o no?

y por que decis que es mejor?
Con el mismo registro puedes saber si es NT o no(si falla no es NT ) :xD , digo que es mejor por que en el registro ya esta escrito directamente que version del SO es entre otras cosas ( si es ultimate o home basic aparece en el registro por ejemplo ) :P

Para ser mas expesifico en la clave :
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName

no lo creo, es muy inesacto, si hay un soft malisioso en dicha pc y cambia ese campo, realmente te la crees?
En línea

The Dark Shadow is my passion.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #7 en: 17 Septiembre 2009, 14:45 pm »

Como dice BlackZeroX esa clave es modificable... en cambio usando RtlGetVersion seria 'mas' complicado de engañar...



Otro metodo:
Código
  1. 'NTDLL
  2. Private Declare Function NtCurrentTeb Lib "NTDLL" () As Long
  3. 'MSVBVM60
  4. Private Declare Sub GetMem4 Lib "MSVBVM60" (ByVal Addr As Long, ByRef RetVal As Long)
  5.  
  6. Public Function PEBGetWinVersion() As String
  7.    Dim lPEB        As Long 'Pointer to PEB
  8.    Dim lOSMa       As Long 'OSMajorVersion     [PEB+0xA4]
  9.    Dim lOSMi       As Long 'OSMinorVersion     [PEB+0xA8]
  10.    Dim lOSPlat     As Long 'OSPlatformId       [PEB+0xB0]
  11.  
  12.    Call GetMem4(NtCurrentTeb + &H30&, lPEB)
  13.    Call GetMem4(lPEB + &HA4, lOSMa)
  14.    Call GetMem4(lPEB + &HA8, lOSMi)
  15.    Call GetMem4(lPEB + &HB0, lOSPlat)
  16.  
  17.    PEBGetWinVersion = Join(Array(lOSPlat, lOSMa, lOSMi), ".")
  18. End Function
  19.  
  20. Public Function VersionToName(ByVal sVersion As String) As String
  21.    Select Case sVersion
  22.        Case "1.0.0":     VersionToName = "Windows 95"
  23.        Case "1.1.0":     VersionToName = "Windows 98"
  24.        Case "1.9.0":     VersionToName = "Windows Millenium"
  25.        Case "2.3.0":     VersionToName = "Windows NT 3.51"
  26.        Case "2.4.0":     VersionToName = "Windows NT 4.0"
  27.        Case "2.5.0":     VersionToName = "Windows 2000"
  28.        Case "2.5.1":     VersionToName = "Windows XP"
  29.        Case "2.5.3":     VersionToName = "Windows 2003 (SERVER)"
  30.        Case "2.6.0":     VersionToName = "Windows Vista"
  31.        Case "2.6.1":     VersionToName = "Windows 7"
  32.        Case Else:        VersionToName = "Unknown"
  33.    End Select
  34. End Function
« Última modificación: 17 Septiembre 2009, 14:48 pm por Karcrack » En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #8 en: 17 Septiembre 2009, 18:21 pm »

y como sabes que es nt o no?

y por que decis que es mejor?
Con el mismo registro puedes saber si es NT o no(si falla no es NT ) :xD , digo que es mejor por que en el registro ya esta escrito directamente que version del SO es entre otras cosas ( si es ultimate o home basic aparece en el registro por ejemplo ) :P

Para ser mas expesifico en la clave :
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName

no lo creo, es muy inesacto, si hay un soft malisioso en dicha pc y cambia ese campo, realmente te la crees?
Claro y si hay un malware que te hace hoock a la api tambien ningun metodo funcionaria ,pero hay que ser realista ;)
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [SNIPPET] Get W$ Version {RtlGetVersion - Native API}
« Respuesta #9 en: 17 Septiembre 2009, 18:28 pm »

Claro y si hay un malware que te hace hoock a la api tambien ningun metodo funcionaria ,pero hay que ser realista ;)
El ultimo metodo que he posteado si que funcionaria por mucho Hook que haya...
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SQL Server Native
Desarrollo Web
CRTANONY 2 2,953 Último mensaje 31 Octubre 2016, 17:06 pm
por CRTANONY
desarrollar juego con react native
Programación General
yina07 0 2,702 Último mensaje 25 Marzo 2019, 17:07 pm
por yina07
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines