• Viernes 19 de Abril de 2024, 15:07

Autor Tema:  [Pregunta]Obtener HWID  (Leído 2007 veces)

.mokk.

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
[Pregunta]Obtener HWID
« en: Viernes 25 de Diciembre de 2009, 09:22 »
0
Bueno e comenzado con un proyecto en el cual ocupo el HARDWARE ID ya que este es mas dificil de cambiar, ya que segun se este cada PC tiene uno diferente jeje, lo que pasa esque el programa que estoy haciendo no deceo que nadie mas lo utilice por lo cual coloque comprobacion de UserID y Password dentro de el pero para mayor seguridad deceo que este nopueda ser usado en una computadora diferente al HWID que yo coloque, Bueno soy nuevo con respecto a manejar el HWID por eso no tengo mucha idea sobre el, por lo cual vengo a ver si alguien podria darme alguna ayuda sobre como obtenerlo en VB.NET, por ahora estoy usando este codigo aunque no estoy seguro si me serviria por completo por lo cual les pregunto jeje ^^

Bueno sin mas que decir aqui les dejo el codigo:

Código: Text
  1.  
  2. Module HWID
  3.     Dim reg As Object, Pid As Object, GUID As Object
  4.     Dim LENGUID As Long, LENPID As Long, TempS As String
  5.     Dim x As Long, SPID As String, SGUID As String, HWID As String
  6.     Const regPID = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProductId"
  7.     Const regGUID = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid"
  8.  
  9.     Public Function CreateID() As String
  10.         On Error Resume Next
  11.  
  12.         reg = CreateObject("wscript.shell")
  13.         Pid = Replace(reg.regread(regPID), "-", "")
  14.         GUID = Replace(reg.regread(regGUID), "-", "")
  15.  
  16.         LENPID = Len(Pid)
  17.         LENGUID = Len(GUID)
  18.  
  19.         For x = 1 To LENPID
  20.             TempS = Hex((Asc(Mid$(Pid, x, 1)) Xor 23) Xor 14)
  21.             SPID = SPID & TempS
  22.         Next x
  23.         SPID = StrReverse(SPID)
  24.  
  25.         For x = 1 To LENGUID
  26.             TempS = Hex((Asc(Mid$(GUID, x, 1)) Xor 23) Xor 14)
  27.             SGUID = SGUID & TempS
  28.         Next x
  29.         SGUID = StrReverse(SGUID)
  30.         HWID = StrReverse(SGUID & SPID)
  31.         CreateID = HWID
  32.     End Function
  33.  
  34.  
  35. End Module
  36.  

Como podran ver esta en un modulo jeje ^^
Espero y alguien pueda ayudarme, ya que dudo que esto me de el HWID, sino que creo que me esta dando otra cosa jeje, espero y me puedan ayudar jeje ^^

Desde ya Gracias por su tiempo

Edit: Bueno Ya que no encontre la solucion pues decidi usar varios componentes de una computadora, que son la MAC,MotherBoard,VolumeSerial Y ProcessorId estos codigos los encontre por ahi pero bueno se los traigo por si necesitan alguno de ellos =P

Código: Text
  1. Imports System
  2. Imports System.Management
  3.  
  4.  
  5. Public Class Form1
  6.     Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, ByVal lpVolumeSerialNumber As Long, ByVal lpMaximumComponentLength As Long, ByVal lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
  7.     Dim reg As Object, Pid As Object, GUID As Object
  8.     Dim LENGUID As Long, LENPID As Long, TempS As String
  9.     Dim x As Long, SPID As String, SGUID As String, HWID As String
  10.     Const regPID = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProductId"
  11.     Const regGUID = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid"
  12.  
  13.     Public Function CreateID() As String
  14.         On Error Resume Next
  15.  
  16.         reg = CreateObject("wscript.shell")
  17.         Pid = Replace(reg.regread(regPID), "-", "")
  18.         GUID = Replace(reg.regread(regGUID), "-", "")
  19.  
  20.         LENPID = Len(Pid)
  21.         LENGUID = Len(GUID)
  22.  
  23.         For x = 1 To LENPID
  24.             TempS = Hex((Asc(Mid$(Pid, x, 1)) Xor 23) Xor 14)
  25.             SPID = SPID & TempS
  26.         Next x
  27.         SPID = StrReverse(SPID)
  28.  
  29.         For x = 1 To LENGUID
  30.             TempS = Hex((Asc(Mid$(GUID, x, 1)) Xor 23) Xor 14)
  31.             SGUID = SGUID & TempS
  32.         Next x
  33.         SGUID = StrReverse(SGUID)
  34.         HWID = StrReverse(SGUID & SPID)
  35.         CreateID = HWID
  36.     End Function
  37.  
  38.     Friend Function GetProcessorId() As String
  39.         Dim strProcessorId As String = String.Empty
  40.         Dim query As New SelectQuery("Win32_processor")
  41.         Dim search As New ManagementObjectSearcher(query)
  42.         Dim info As ManagementObject
  43.  
  44.         For Each info In search.Get()
  45.             strProcessorId = info("processorId").ToString()
  46.         Next
  47.         Return strProcessorId
  48.  
  49.     End Function
  50.  
  51.     Friend Function GetMACAddress() As String
  52.  
  53.         Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
  54.         Dim moc As ManagementObjectCollection = mc.GetInstances()
  55.         Dim MACAddress As String = String.Empty
  56.         For Each mo As ManagementObject In moc
  57.  
  58.             If (MACAddress.Equals(String.Empty)) Then
  59.                 If CBool(mo("IPEnabled")) Then MACAddress = mo("MacAddress").ToString()
  60.  
  61.                 mo.Dispose()
  62.             End If
  63.             MACAddress = MACAddress.Replace(":", String.Empty)
  64.  
  65.         Next
  66.         Return MACAddress
  67.     End Function
  68.  
  69.     Friend Function GetVolumeSerial(Optional ByVal strDriveLetter As String = "C") As String
  70.  
  71.         Dim disk As ManagementObject = New ManagementObject(String.Format("win32_logicaldisk.deviceid=""{0}:""", strDriveLetter))
  72.         disk.Get()
  73.         Return disk("VolumeSerialNumber").ToString()
  74.     End Function
  75.  
  76.     Friend Function GetMotherBoardID() As String
  77.  
  78.         Dim strMotherBoardID As String = String.Empty
  79.         Dim query As New SelectQuery("Win32_BaseBoard")
  80.         Dim search As New ManagementObjectSearcher(query)
  81.         Dim info As ManagementObject
  82.         For Each info In search.Get()
  83.  
  84.             strMotherBoardID = info("SerialNumber").ToString()
  85.  
  86.         Next
  87.         Return strMotherBoardID
  88.  
  89.     End Function
  90.  
  91.  
  92. End Class
  93.  
  94.  

Deven agregar la Referencia System.Management por si les da error, Bueno si decean pueden cerrar el tema =P