Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: guidosl en 6 Abril 2009, 09:36 am



Título: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 09:36 am
queria agregar a un programita q estoy haciendo

un textbox en donde al apretar un boton me muestre la clave del windows xp y vista

segun lo q creo es leyendo esta clave

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents]
"OOBETimer"=hex:fe,e5,71,d6,8b,6a,8d,6f,d5,33,93,jd

pero no se como pasar ese numero hexa a letras...porque al hacerlo me muestra signos como:

Ö
ÿ

gracias


Título: Re: (ayuda) leer serial de windows
Publicado por: xkiz ™ en 6 Abril 2009, 10:09 am
hola tenes que leerlo como Binary con: RegOpenKey (http://allapi.mentalis.org/apilist/4E1AB36884B253CE24768DA1C4080A14.html)


Título: Re: (ayuda) leer serial de windows
Publicado por: guidosl en 6 Abril 2009, 10:21 am
yo uso esto para leer claves en el registro


Private Sub painicio()
 'lee el registro y carga la paginad e inicio de IE
 Dim objShell As Object
 Set objShell = CreateObject("Wscript.Shell")

 Text2.Text = objShell.RegRead("HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page")
 Set objShell = Nothing
End Sub


esta me lee la pagina de inico de internet explorer y la muestra en un text2.txt


como lo podria ahcer con esto?¿


Título: Re: (ayuda) leer serial de windows
Publicado por: xkiz ™ en 6 Abril 2009, 10:31 am
yo te diria que es mejor hacerlo con API, usa el ejemplo que te pase ahi, solo tenes que agregar esta constante a ese code

Private Const HKEY_LOCAL_MACHINE As Long = &H80000002


Título: Re: (ayuda) leer serial de windows
Publicado por: guidosl en 6 Abril 2009, 10:41 am
gracias! pero me gustaria algo mas simple si se puede

es q hace poco empese a programar



asi q si a alguien se le ocurre algo ....


de nuevo gracias


Título: Re: (ayuda) leer serial de windows
Publicado por: xkiz ™ en 6 Abril 2009, 11:00 am
usando api ovbias el tener que usar referencia a Script Host
ejemplo del API-Guide:

Código
  1. Const REG_SZ = 1 ' Unicode nul terminated string
  2. Const REG_BINARY = 3 ' Free form binary
  3. Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
  4. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  5. Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  6. Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
  7. Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  8. Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
  9. Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
  10. Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
  11.    Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
  12.    'retrieve nformation about the key
  13.    lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
  14.    If lResult = 0 Then
  15.        If lValueType = REG_SZ Then
  16.            'Create a buffer
  17.            strBuf = String(lDataBufSize, Chr$(0))
  18.            'retrieve the key's content
  19.            lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)
  20.            If lResult = 0 Then
  21.                'Remove the unnecessary chr$(0)'s
  22.                RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)
  23.            End If
  24.        ElseIf lValueType = REG_BINARY Then
  25.            Dim strData As Integer
  26.            'retrieve the key's value
  27.            lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize)
  28.            If lResult = 0 Then
  29.                RegQueryStringValue = strData
  30.            End If
  31.        End If
  32.    End If
  33. End Function
  34. Function GetString(hKey As Long, strPath As String, strValue As String)
  35.    Dim Ret
  36.    'Open the key
  37.    RegOpenKey hKey, strPath, Ret
  38.    'Get the key's content
  39.    GetString = RegQueryStringValue(Ret, strValue)
  40.    'Close the key
  41.    RegCloseKey Ret
  42. End Function
  43.  
  44. Private Sub Form_Load()
  45.    'KPD-Team 1998
  46.    'URL: http://www.allapi.net/
  47.    'E-Mail: KPDTeam@Allapi.net
  48.    Ret = GetString(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents", "OOBETimer")
  49.    If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub
  50.    MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title
  51. End Sub

aca te pongo un módulo clase para manipular el registro muy completo: Lightning! Registry (http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=63220&lngWId=1)


Título: Re: (ayuda) leer serial de windows
Publicado por: guidosl en 6 Abril 2009, 11:10 am
claro es parecido a lo q probe recien yo con la info q me diste


pero me develve un valo numerico


no es  a lo q me referia...yo queria q me de la clave de windows

ej: jtsnf-aset3-gf5gy-4fswf-fe234

se entiende?

se puede hacer?


Título: Re: (ayuda) leer serial de windows
Publicado por: xkiz ™ en 6 Abril 2009, 11:18 am
es que el serial de Windows no esta en esa clave


Título: Re: (ayuda) leer serial de windows
Publicado por: guidosl en 6 Abril 2009, 11:24 am
mmm me parece q no nos entedimos

si ahi esta el serial de windows graurdado como dato en esa clave de registro

pero esta guardado en HEXADECIMAL

yo lo se pasar a ascii manualmente pero no desde VB

eso es lo q necesito

ej: que le programa te tire un msjbox "su clave actual es jtsnf-aset3-gf5gy-4fswf-fe234"

gracias igual por tu ayuda


Título: Re: (ayuda) leer serial de windows
Publicado por: xkiz ™ en 6 Abril 2009, 11:36 am
 si ya se, hice un programa para cambiar el serial de XP, y se que en esa clave no esta el serial de XP, esa clave OOBETimer se usa para otra cosa. solo que no se si puedo poner el codigo aca. busca en Planet Source code (http://www.planet-source-code.com/vb/default.asp?lngWId=1) que hay vas a encontrar lo que buscas


Título: Re: (ayuda) leer serial de windows
Publicado por: guidosl en 6 Abril 2009, 11:43 am
tenes razon q no era ahi!

mis disculpas jejejeje

ahora entro a esa pag q me pasaste

y gracias denuevo


Título: Re: (ayuda) leer serial de windows
Publicado por: guidosl en 6 Abril 2009, 12:14 pm
pues no lo pude encontrar :S

si alguien sabe como ahcerlo me peude pasar el codigo fuente x mail o mensj privado

gracias


Título: Re: (ayuda) leer serial de windows
Publicado por: Dessa en 6 Abril 2009, 12:19 pm
' Module: mWinProdKey
 http://www.advancevb.com.ar (http://www.advancevb.com.ar)


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 14:25 pm
alguien sabe como pasar esto a vb6 y que la clave nueva q se va a poner se lea desde un textbox?


encontre esto en la pagina de microsoft (es un .vbs)

Citar
ON ERROR RESUME NEXT


if Wscript.arguments.count<1 then
   Wscript.echo "Script can't run without VolumeProductKey argument"
   Wscript.echo "Correct usage: Cscript ChangeVLKey.vbs ABCDE-FGHIJ-KLMNO-PRSTU-WYQZX"
   Wscript.quit
end if

Dim VOL_PROD_KEY
VOL_PROD_KEY = Wscript.arguments.Item(0)
VOL_PROD_KEY = Replace(VOL_PROD_KEY,"-","") 'remove hyphens if any

for each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")

   result = Obj.SetProductKey (VOL_PROD_KEY)

   if err <> 0 then
      WScript.Echo Err.Description, "0x" & Hex(Err.Number)
      Err.Clear
   end if

Next


y se usa asi

Citar
1. guardar el scrit en c:\changevlkeysp1.vbs
2. Haga clic en Inicio y, a continuación, haga clic en Ejecutar.
   3. En el cuadro Abrir, escriba el comando siguiente, donde AB123-123AB-AB123-123AB-AB123 es la nueva clave del producto que desea utilizar y haga clic en Aceptar:
      c:\changevlkeysp1.vbs ab123-123ab-ab123-123ab-ab123


gracias


Título: Re: (ayuda) product key de windows
Publicado por: aaronduran2 en 6 Abril 2009, 14:50 pm
Aquí tienes un código que funciona a la perfección con lo que quieres.

Código
  1. Public Declare Function RegCloseKey Lib "ADVAPI32.dll" (ByVal hKey As Long) As Long
  2. Public Declare Function RegOpenKey Lib "ADVAPI32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  3.  
  4. Public Declare Function RegQueryValueEx Lib "ADVAPI32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that If you declare the lpData parameter as String, you must pass it By Value.
  5. Public Const REG_BINARY = 3
  6. Public Const HKEY_LOCAL_MACHINE = &H80000002
  7. Public Const ERROR_SUCCESS = 0&
  8.  
  9. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  10. '    //ClaveWindows//
  11. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  12. '   Obtener la clave de Windows.
  13. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  14. Public Function ClaveWindows() As String
  15.    Dim bDigitalProductID() As Byte
  16.    Dim bProductKey() As Byte
  17.    Dim ilByte As Long
  18.    Dim lDataLen As Long
  19.    Dim hKey As Long
  20.    If RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\Windows NT\CurrentVersion", hKey) = ERROR_SUCCESS Then
  21.        lDataLen = 164
  22.        ReDim Preserve bDigitalProductID(lDataLen)
  23.        If RegQueryValueEx(hKey, "DigitalProductId", 0&, REG_BINARY, bDigitalProductID(0), lDataLen) = ERROR_SUCCESS Then
  24.            ReDim Preserve bProductKey(14)
  25.            For ilByte = 52 To 66
  26.                bProductKey(ilByte - 52) = bDigitalProductID(ilByte)
  27.            Next ilByte
  28.        Else
  29.            ClaveWindows = ""
  30.            Exit Function
  31.        End If
  32.    Else
  33.        ClaveWindows = ""
  34.        Exit Function
  35.    End If
  36.    Dim bKeyChars(0 To 24) As Byte
  37.    bKeyChars(0) = Asc("B")
  38.    bKeyChars(1) = Asc("C")
  39.    bKeyChars(2) = Asc("D")
  40.    bKeyChars(3) = Asc("F")
  41.    bKeyChars(4) = Asc("G")
  42.    bKeyChars(5) = Asc("H")
  43.    bKeyChars(6) = Asc("J")
  44.    bKeyChars(7) = Asc("K")
  45.    bKeyChars(8) = Asc("M")
  46.    bKeyChars(9) = Asc("P")
  47.    bKeyChars(10) = Asc("Q")
  48.    bKeyChars(11) = Asc("R")
  49.    bKeyChars(12) = Asc("T")
  50.    bKeyChars(13) = Asc("V")
  51.    bKeyChars(14) = Asc("W")
  52.    bKeyChars(15) = Asc("X")
  53.    bKeyChars(16) = Asc("Y")
  54.    bKeyChars(17) = Asc("2")
  55.    bKeyChars(18) = Asc("3")
  56.    bKeyChars(19) = Asc("4")
  57.    bKeyChars(20) = Asc("6")
  58.    bKeyChars(21) = Asc("7")
  59.    bKeyChars(22) = Asc("8")
  60.    bKeyChars(23) = Asc("9")
  61.    Dim nCur As Integer
  62.    Dim sCDKey As String
  63.    Dim ilKeyByte As Long
  64.    Dim ilBit As Long
  65.    For ilByte = 24 To 0 Step -1
  66.        nCur = 0
  67.        For ilKeyByte = 14 To 0 Step -1
  68.            nCur = nCur * 256 Xor bProductKey(ilKeyByte)
  69.            bProductKey(ilKeyByte) = Int(nCur / 24)
  70.            nCur = nCur Mod 24
  71.        Next ilKeyByte
  72.        sCDKey = Chr(bKeyChars(nCur)) & sCDKey
  73.        If ilByte Mod 5 = 0 And ilByte <> 0 Then sCDKey = "-" & sCDKey
  74.    Next ilByte
  75.    ClaveWindows = sCDKey
  76. End Function

Ejemplo de uso:

Código
  1. MsgBox ClaveWindows

o

Código
  1. Dim sClave As String
  2. sClave = ClaveWindows
  3. MsgBox sClave

Saludos  ;)


Título: Re: (ayuda) product key de windows
Publicado por: xkiz ™ en 6 Abril 2009, 14:52 pm
Código
  1. Public Sub NewSerial(VOL_PROD_KEY As String)
  2. 'Dim VOL_PROD_KEY As String
  3. Dim Obj As Object
  4. Dim result As Variant
  5.    VOL_PROD_KEY = UCase(VOL_PROD_KEY)
  6.    VOL_PROD_KEY = Replace(VOL_PROD_KEY, "-", "") 'remove hyphens if any
  7.    For Each Obj In GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("win32_WindowsProductActivation")
  8.    result = Obj.SetProductKey(VOL_PROD_KEY)
  9.    Next
  10. End Sub


Título: Re: (ayuda) product key de windows
Publicado por: XcryptOR en 6 Abril 2009, 14:55 pm
este codigo es de Cobein funciona de maravilla



Código
  1. '              '---------------------------------------------------------------------------------------
  2. ' Module      : mWinProdKey
  3. ' DateTime    : 12/09/2008 18:00
  4. ' Author      : Cobein
  5. ' Mail        : cobein27@hotmail.com
  6. ' WebPage     : http://www.advancevb.com.ar
  7. ' Purpose     : Retrieve Window$ CDKey
  8. ' Usage       : At your own risk
  9. ' Requirements: None
  10. ' Distribution: You can freely use this code in your own
  11. '               applications, but you may not reproduce
  12. '               or publish this code on any web site,
  13. '               online service, or distribute as source
  14. '               on any media without express permission.
  15. '
  16. ' Reference   : based on code from an unknown author, posted by KANO on HH
  17. '
  18. ' History     : 12/09/2008 First Cut....................................................
  19. '---------------------------------------------------------------------------------------
  20. Option Explicit
  21.  
  22. Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  23. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  24. Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
  25. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
  26.  
  27. Public Function WinProdKey() As String
  28.    Dim lhKey           As Long
  29.    Dim bvBuffer(163)   As Byte
  30.    Dim vCharset        As Variant
  31.    Dim bvChar(23)      As Byte
  32.    Dim i               As Long
  33.    Dim j               As Long
  34.    Dim lCur            As Long
  35.  
  36.    If RegOpenKey(&H80000002, "SOFTWARE\MICROSOFT\Windows NT\CurrentVersion", lhKey) = 0& Then
  37.        If RegQueryValueEx(lhKey, "DigitalProductId", 0, 3, bvBuffer(0), 164) = 0 Then
  38.  
  39.            Call CopyMemory(bvBuffer(0), bvBuffer(52), &HF)
  40.  
  41.            vCharset = Array( _
  42.               "B", "C", "D", "F", "G", "H", "J", "K", "M", "P", "Q", "R", _
  43.               "T", "V", "W", "X", "Y", "2", "3", "4", "6", "7", "8", "9")
  44.  
  45.            For i = 0 To 23
  46.                bvChar(i) = Asc(vCharset(i))
  47.            Next
  48.  
  49.            For i = 24 To 0 Step -1
  50.                lCur = 0
  51.                For j = 14 To 0 Step -1
  52.                    lCur = lCur * 256 Xor bvBuffer(j)
  53.                    bvBuffer(j) = Int(lCur / 24)
  54.                    lCur = lCur Mod 24
  55.                Next
  56.                WinProdKey = vCharset(lCur) & WinProdKey
  57.                If i Mod 5 = 0 And i <> 0 Then WinProdKey = "-" & WinProdKey
  58.            Next
  59.  
  60.        End If
  61.        Call RegCloseKey(lhKey)
  62.    End If
  63. End Function
  64. Sub main()
  65. MsgBox WinProdKey
  66. End Sub
  67.  


Título: Re: (ayuda) product key de windows
Publicado por: Karcrack en 6 Abril 2009, 16:09 pm
XCryptor, no cortes los creditos de Cobein... :-X


Título: Re: (ayuda) product key de windows
Publicado por: ricardovinzo en 6 Abril 2009, 17:50 pm
XCryptor, no cortes los creditos de Cobein... :-X

Siempre lo hace:.  :¬¬  :¬¬  :¬¬  :xD


Título: Re: (ayuda) product key de windows
Publicado por: XcryptOR en 6 Abril 2009, 18:47 pm
Citar
XCryptor, no cortes los creditos de Cobein...

Citar
Siempre lo hace

que pena no seleccione el codigo bien, ademas  dice: este codigo es de Cobein, no lo ves ahi muy claro, y ya modifique el source. y para ricardovinzo a ver donde he ripeado codigo, muestramelo quiero ver algun post donde haya ripeado codigo o donde no haya colocado al autor.

no puedes decirlo sin pruebas.

saludos

PD: y esto es lo que uno se gana por querer colaborar que le digan code ripper o script kiddie !al carajo¡  :¬¬


Título: Re: (ayuda) product key de windows
Publicado por: Karcrack en 6 Abril 2009, 18:52 pm
Citar
XCryptor, no cortes los creditos de Cobein...

Citar
Siempre lo hace

que pena no seleccione el codigo bien, ademas  dice: este codigo es de Cobein, no lo ves ahi muy claro, y ya modifique el source. y para ricardovinzo a ver donde he ripeado codigo, muestramelo quiero ver algun post donde haya ripeado codigo o donde no haya colocado al autor.

no puedes decirlo sin pruebas.

saludos

PD: y esto es lo que uno se gana por querer colaborar que le digan code ripper o script kiddie !al carajo¡  :¬¬

Nadie dijo que lo hicieras intencionado no? :¬¬


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 19:23 pm
alguien sabe a aprtir del codigo q me paso xkiz  en donde se introduce la nueva key?¿?¿

Citar
Public Sub NewSerial(VOL_PROD_KEY As String)
'Dim VOL_PROD_KEY As String
Dim Obj As Object
Dim result As Variant
    VOL_PROD_KEY = UCase(VOL_PROD_KEY)
    VOL_PROD_KEY = Replace(VOL_PROD_KEY, "-", "") 'remove hyphens if any
    For Each Obj In GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("win32_WindowsProductActivation")
    result = Obj.SetProductKey(VOL_PROD_KEY)
    Next
End Sub



o algun otro codigo para cambiar la clave?



gracias


Título: Re: (ayuda) leer serial de windows
Publicado por: Dessa en 6 Abril 2009, 19:27 pm
si ya se, hice un programa para cambiar el serial de XP, y se que en esa clave no esta el serial de XP, esa clave OOBETimer se usa para otra cosa. solo que no se si puedo poner el codigo aca. busca en Planet Source code (http://www.planet-source-code.com/vb/default.asp?lngWId=1) que hay vas a encontrar lo que buscas

Hola xkis, ahora me pusiste en la duda, no se puede cambiar el serial de windows ???... si es así porque Microsof dejaría msoobe.exe /a en system32\oobe...  

PD: alguien sabe si es legal cambiar el serial de windows ???

  


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 19:33 pm
sisi se puede


Citar
Citar
ON ERROR RESUME NEXT


if Wscript.arguments.count<1 then
   Wscript.echo "Script can't run without VolumeProductKey argument"
   Wscript.echo "Correct usage: Cscript ChangeVLKey.vbs ABCDE-FGHIJ-KLMNO-PRSTU-WYQZX"
   Wscript.quit
end if

Dim VOL_PROD_KEY
VOL_PROD_KEY = Wscript.arguments.Item(0)
VOL_PROD_KEY = Replace(VOL_PROD_KEY,"-","") 'remove hyphens if any

for each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")

   result = Obj.SetProductKey (VOL_PROD_KEY)

   if err <> 0 then
      WScript.Echo Err.Description, "0x" & Hex(Err.Number)
      Err.Clear
   end if

Next


y se usa asi

Citar
1. guardar el scrit en c:\changevlkeysp1.vbs
2. Haga clic en Inicio y, a continuación, haga clic en Ejecutar.
   3. En el cuadro Abrir, escriba el comando siguiente, donde AB123-123AB-AB123-123AB-AB123 es la nueva clave del producto que desea utilizar y haga clic en Aceptar:
      c:\changevlkeysp1.vbs ab123-123ab-ab123-123ab-ab123



asi lo cambie yo


ademas de q tengo 2 programas q te lo hacen


lo q quiero es incluir en mi progama tmb esa opcion



ante tu duda con "msoobe" lo q te peudo decir es q al alterar algun valor de esa clave de registro el asistente para activar windows se volvera a activa y te permitira cambiar la clave, sino t va a decir: "su windows ya esta activado" y no t va a dejar hacer ninguna accion

la key de windows se encuentra en otra clave de registro

y debe ser legal porque hasta en la pagina de microsoft hay explicadas formas de como cambiar la clave


saludos


Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 19:34 pm
Código
  1. Public Sub NewSerial(VOL_PROD_KEY As String)
  2. 'Dim VOL_PROD_KEY As String
  3. 'El valor de la key se le pasa como parámetro
  4. Dim Obj As Object
  5. Dim result As Variant
  6.    VOL_PROD_KEY = UCase(VOL_PROD_KEY)
  7. 'Se cambian las letras/numeros a mayusculas
  8.    VOL_PROD_KEY = Replace(VOL_PROD_KEY, "-", "") 'remove hyphens if any
  9. 'Se reemplazan los guiones "altos"
  10.    For Each Obj In GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("win32_WindowsProductActivation")
  11. 'Se utiliza WMI para acceder a la clase correspondiente
  12.    result = Obj.SetProductKey(VOL_PROD_KEY)
  13. 'Se cambia la key de win y se almacena el resultado en una variable
  14.    Next
  15. End Sub

Saludos


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 19:36 pm
y pero en q parte ponemos la nueva keyy??¿

aparte cuando llamo a la rutina me dice
Citar
el valor no es opcional



no entiendo :S


Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 6 Abril 2009, 19:37 pm
sisi se puede

Sí guidos, ya se que se puede, quería saber si es legal cambiarlo ???


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 19:38 pm
Citar
y debe ser legal porque hasta en la pagina de microsoft hay explicadas formas de como cambiar la clave




Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 19:39 pm
y pero en q parte ponemos la nueva keyy??¿
no entiendo :S
Hás leído algo de lo que he completado? Tercera línea  :¬¬
Citar
'El valor de la key se le pasa como parámetro

Por que no va a ser legal? puedes comprar otra y cambiar la actual  :rolleyes:


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 19:42 pm
ya esta graciassss!!!!



otra consultita alguien sabe como hacer apra q cuando se complete la cantidad maxima de caracteres q acepta un textbox se pase directamente al textbox siguiente para seguir escribiendo??

gracias


Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 19:45 pm
Exacto, ahora si te cuesta entender eso, te recomiendo que antes de ponerte a hacer cualquier cosa, te pases por algún tuto básico de VB  :silbar:

Saludos


Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 6 Abril 2009, 19:56 pm
Código
  1. Public Sub NewSerial(VOL_PROD_KEY As String)
  2. 'Dim VOL_PROD_KEY As String
  3. 'El valor de la key se le pasa como parámetro
  4. Dim Obj As Object
  5. Dim result As Variant
  6.    VOL_PROD_KEY = UCase(VOL_PROD_KEY)
  7. 'Se cambian las letras/numeros a mayusculas
  8.    VOL_PROD_KEY = Replace(VOL_PROD_KEY, "-", "") 'remove hyphens if any
  9. 'Se reemplazan los guiones "altos"
  10.    For Each Obj In GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("win32_WindowsProductActivation")
  11. 'Se utiliza WMI para acceder a la clase correspondiente
  12.    result = Obj.SetProductKey(VOL_PROD_KEY)
  13. 'Se cambia la key de win y se almacena el resultado en una variable
  14.    Next
  15. End Sub

Saludos

Bueno, bien que yo la estaba haciendo bien larga para cambiar la key, este code parece bien directo, gracias por el aporte Novlucker

Saludos


Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 20:05 pm
Naaa, el code lo dejó xkiz, yo solo lo comenté para que se entendiera.

Tener en cuenta que este hace uso de WMI, para lo cual se deben de tener permisos de admin, pero igualmente para cambiar la clave hay que tenerlos, así que en este caso da igual :P

Saludos


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 20:15 pm
otra consultita alguien sabe como hacer apra q cuando se complete la cantidad maxima de caracteres q acepta un textbox se pase directamente al textbox siguiente para seguir escribiendo??
 graciass


Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 6 Abril 2009, 20:17 pm
Naaa, el code lo dejó xkiz, yo solo lo comenté para que se entendiera.

Tener en cuenta que este hace uso de WMI, para lo cual se deben de tener permisos de admin, pero igualmente para cambiar la clave hay que tenerlos, así que en este caso da igual :P

Saludos

Tenes toda la razon, entre tantos mensajes se me pasó, gracias por el aporte xkis


Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 20:21 pm
Código
  1. Private Sub TextBox1_Change()
  2. If Len(TextBox1.Text) = TextBox1.MaxLength Then
  3.    TextBox2.SetFocus
  4. End If
  5. End Sub


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 20:32 pm
graciassss

y una ultima preguntita yo puse para q ingrese la clave 5 textbox diferentes

queria sabar si se peude q copien la clave completa y q al pegarla en el 1er textbox se completen los 5

osea q tomen cada "-" como cambio de textbox


gracias denuevo


Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 20:57 pm
Ok repito, lee un tuto, te evitarás MUCHAS preguntas  ;)

Algo así:
Código
  1. Private Sub TextBox1_Change()
  2.  
  3. If Len(TextBox1.Text) = 29 Then
  4. claves = Split(TextBox1.Text, "-")
  5.  
  6. For i = 1 To 5
  7.    Controls("TextBox" & i).Text = claves(i - 1)
  8. Next
  9. End If
  10.  
  11. End Sub
Que gracia tiene si te hacemos todo el code?  :rolleyes:

Saludos


Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 6 Abril 2009, 21:32 pm
Me queda una duda, antes de modificar la key no hay que crear una nueva ID ???

HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 21:38 pm
Citar
Private Sub TextBox1_Change()
 
If Len(TextBox1.Text) = 29 Then
claves = Split(TextBox1.Text, "-")
 
For i = 1 To 5
    Controls("TextBox" & i).Text = claves(i - 1)
Next
End If
 
End Sub



declare

Dim claves As String


pero i lo declare de varias formas y ninguna me sirvio


Dim i (5) As String
Dim i (1 to 5) as integer


Novlucker no es q no lea tutos ni nada...tampoco quiero q me hagan todo ustedes, yo si busco info x mi parte hago todo lo q me sale solo y lo q no bueno ahi pregunto...esto solo es una parte del programa q estoy haciendo, no me creas tan vago jajajaj

muchas graciass


Título: Re: (ayuda) product key de windows
Publicado por: Novlucker en 6 Abril 2009, 21:44 pm
Código
  1. Dim i As Integer
  2. Dim claves() As String


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 6 Abril 2009, 21:59 pm
si tmb habia probado jajaja
y no me salia pero em ahbia olvidado q era porque al primer textbox le habia puesto 5 como cantidad maxima de caracteres  ;-)


PD: ademas estaria bueno incluirle las opciones para office y para windows vista, ahora me voy a poner a buscar info asi q si alguien puede hacer algun aporte sobre eso estaria bueno

ademas encontre un programita q se llama "microsoft genuine advantage diagnostic" q entre varias opciones q tiene una q me parecio copada fue q te chequea el "validation status" segun la clave q tengas y t dice si esta blokeada o no

no se como ahcerlo epro ya lo voy a descubir jajaja



aca va como queda: (el codigo te dice la key actual, te dice el tipo de windows q tenes y el service pack, y permite cambiar la key)


5 textbox
1 timer(ponene el intervalo q quieran para q cheqee si cambia la key)
1 comandbutton (para realizar el cambio de la key)
2 labels


Citar
Option Explicit

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Private Const REG_BINARY = 3
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_SZ = 1
' ruta del registro donde Windows guarda la clave (codificada) y la versión
Private Const RUTA_REGISTRO = "SOFTWARE\MICROSOFT\Windows NT\CurrentVersion"
Private Sub Command1_Click()
On Error GoTo mal
Dim VOL_PROD_KEY As String
'El valor de la key se le pasa como parámetro
VOL_PROD_KEY = Text1.Text & Text2.Text & Text3.Text & Text4.Text & Text5.Text
Dim Obj As Object
Dim result As Variant
    VOL_PROD_KEY = UCase(VOL_PROD_KEY)
'Se cambian las letras/numeros a mayusculas
    VOL_PROD_KEY = Replace(VOL_PROD_KEY, "-", "") 'remove hyphens if any
'Se reemplazan los guiones "altos"
    For Each Obj In GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("win32_WindowsProductActivation")
'Se utiliza WMI para acceder a la clase correspondiente
    result = Obj.SetProductKey(VOL_PROD_KEY)
'Se cambia la key de win y se almacena el resultado en una variable
    Next
Exit Sub
mal:
MsgBox "key ingrasada incorrecta"

End Sub




Private Function SacarClave() As String
Dim bID(164) As Byte, bKey(14) As Byte, bAsc(24) As Byte
Dim lBit As Long, hKey As Long

If RegOpenKey(HKEY_LOCAL_MACHINE, RUTA_REGISTRO, hKey) = 0 Then
If RegQueryValueEx(hKey, "DigitalProductId", 0&, REG_BINARY, bID(0), 164) = 0 Then
For lBit = 52 To 66
bKey(lBit - 52) = bID(lBit)
Next lBit
Else
MsgBox "No se puede leer la clave."
SacarClave = ""
Exit Function
End If
Else
MsgBox "No se puede acceder al registro."
SacarClave = ""
Exit Function
End If
'Descodificar la clave
bAsc(0) = Asc("B"): bAsc(1) = Asc("C"): bAsc(2) = Asc("D")
bAsc(3) = Asc("F"): bAsc(4) = Asc("G"): bAsc(5) = Asc("H")
bAsc(6) = Asc("J"): bAsc(7) = Asc("K"): bAsc(8) = Asc("M")
bAsc(9) = Asc("P"): bAsc(10) = Asc("Q"): bAsc(11) = Asc("R")
bAsc(12) = Asc("T"): bAsc(13) = Asc("V"): bAsc(14) = Asc("W")
bAsc(15) = Asc("X"): bAsc(16) = Asc("Y"): bAsc(17) = Asc("2")
bAsc(18) = Asc("3"): bAsc(19) = Asc("4"): bAsc(20) = Asc("6")
bAsc(21) = Asc("7"): bAsc(22) = Asc("8"): bAsc(23) = Asc("9")

Dim i As Integer, j As Integer, sClave As String
For lBit = 24 To 0 Step -1
i = 0
For j = 14 To 0 Step -1
i = i * 256 Xor bKey(j)
bKey(j) = Int(i / 24)
i = i Mod 24
Next j
sClave = Chr(bAsc(i)) & sClave
If lBit Mod 5 = 0 And lBit <> 0 Then sClave = "-" & sClave
Next lBit
SacarClave = sClave
Label1.Caption = SacarClave
End Function

Private Function VerVersion()
Dim lRet As Long
RegOpenKey HKEY_LOCAL_MACHINE, RUTA_REGISTRO, lRet
VerVersion = SacarValorRegistro(lRet, "ProductName")
RegCloseKey lRet
RegOpenKey HKEY_LOCAL_MACHINE, RUTA_REGISTRO, lRet
VerVersion = VerVersion & " - " & SacarValorRegistro(lRet, "CSDVersion")
RegCloseKey lRet
Label2.Caption = "Versión: " & VerVersion
End Function

Function SacarValorRegistro(ByVal HKLM As Long, ByVal sValor As String) As String
Dim lRet As Long, lInfoValor As Long
Dim lLen As Long, sBuffer As String

lRet = RegQueryValueEx(HKLM, sValor, 0, lInfoValor, ByVal 0, lLen)
If lRet = 0 Then
If lInfoValor = REG_SZ Then
sBuffer = String(lLen, Chr$(0))
lRet = RegQueryValueEx(HKLM, sValor, 0, 0, ByVal sBuffer, lLen)
If lRet = 0 Then
SacarValorRegistro = Left$(sBuffer, InStr(1, sBuffer, Chr$(0)) - 1)
End If
ElseIf lInfoValor = REG_BINARY Then
Dim strData As Integer
lRet = RegQueryValueEx(HKLM, sValor, 0, 0, strData, lLen)
If lRet = 0 Then SacarValorRegistro = strData
End If
End If
End Function


Private Sub Form_Load()
Call SacarClave
Call VerVersion

End Sub

Private Sub Timer1_Timer()
Call SacarClave
End Sub

Private Sub Text1_Change()
Dim i As Integer
Dim claves() As String

If Len(Text1.Text) = 29 Then
claves = Split(Text1.Text, "-")
 
For i = 1 To 5
    Controls("Text" & i).Text = claves(i - 1)
Next
End If
 
If Len(Text1.Text) = 5 Then
    Text2.SetFocus
End If
End Sub
 


Private Sub Text2_Change()
If Len(Text2.Text) = Text2.MaxLength Then
    Text3.SetFocus
End If
End Sub

Private Sub Text3_Change()
If Len(Text3.Text) = Text3.MaxLength Then
    Text4.SetFocus
End If
End Sub
Private Sub Text4_Change()
If Len(Text4.Text) = Text4.MaxLength Then
    Text5.SetFocus
End If
End Sub



Título: Re: (ayuda) product key de windows
Publicado por: xkiz ™ en 6 Abril 2009, 23:16 pm
perdon, pero me quede dormido.

con respecto a lo de si es legal?
el codigo mismo te lo da Microsoft, es de acceso public0. Microsoft mismo hizo un prog para Cambiar el serial (Windows Product Key Update Tool), lo ilegal no es cambiar el seria , si no el como obtuviste ese serial  (si no fue atraves de Microsoft). y lo de msoobe, seria la forma adecuada de cambiarlo pero ...

guidosl ojo con los caracteres del serial como te abras dado cuenta en el codigo del modulo de cobein hay caracteres no validadios...

Antes de cambiar la clave hay que modificar el valor OOBETIMER para que desactivarlo, y asi poder meter el serial nuevo.

Editado { el timer esta de mas, no se si viste pero cada textbox tiene su evento change(sino lo tiene poneselo), ahi es donde tendrias que verificar si todos los textBox tienen 5 caracteres, y si estan todos con 5 habilitar o deshabilitar en Command1.
}

PD: para el que quiera informarse al respecto: http://support.microsoft.com/kb/328874/es (http://support.microsoft.com/kb/328874/es)



Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 7 Abril 2009, 00:13 am
Me queda una duda, antes de modificar la key no hay que crear una nueva ID ???

A eso me refería xkis, pero me parece que falta un paso intermedio lugo de modificar o poner nulo el valor OOBETIMER y modificar la key.
 
EDIT: cada ves que cambiamos la key se agrega (entre otras) una entrada en el registro en
HKEY_LOCAL_MACHINE\SYSTEM\WPA\Key-ABCDEFGHIJKLMNÑOPQRST\"ProductId"=


Título: Re: (ayuda) product key de windows
Publicado por: xkiz ™ en 7 Abril 2009, 00:26 am
jejej nunca habia visto eso Desa, ahora lo vi y a eso lo hace solo Windows cuando se cambia el serial, yo tengo 3 claves KEY-XXX y justamente cambie 3 veces el serial en lo que va esta formateada mia...


Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 7 Abril 2009, 00:39 am
AHH, bueno, las quiero eliminar y "Bill gate" no me deja (son 6), ahora repongo una imagen (todavía me salva el Drive Image 2002)


Título: Re: (ayuda) product key de windows
Publicado por: xkiz ™ en 7 Abril 2009, 00:48 am
para que las queres borrar?, dejalas ahi, por exeperiencia aprendi que hay cosas mejor no tocar, formatea y se te soluciona. jejeje (chiste)


Título: Re: (ayuda) product key de windows
Publicado por: Dessa en 7 Abril 2009, 00:57 am
Formatear, no , Drive Image, 3 minutos , y aquí  nada a pasado

PD: es bravo este Bill Gato


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 7 Abril 2009, 02:36 am
es verdad lo de deshabilitar el boton hasta q esten completos todos los textbox

pero el timer lo puse para q chequee si la clave es cambiada por otro medio...o para sabedr si realmente se cambio..


Título: Re: (ayuda) product key de windows
Publicado por: xkiz ™ en 7 Abril 2009, 02:39 am
para verificar lo podes hacer despues de cambiar la clave, te fijas si es  igual a la anterior o no.

a me olvide: despues de cambiar el serial, hay que reiniciar, para que tome bien el cambio en toda su magnitud


Título: Re: (ayuda) product key de windows
Publicado por: guidosl en 7 Abril 2009, 03:39 am
y si paramos y reiniciamos el explorer.exe no va?










Título: Re: (ayuda) product key de windows
Publicado por: xkiz ™ en 7 Abril 2009, 03:55 am
en si si pero no por completo. windows no es solo un proceso