标题: VBS获得Windows CD-KEY,主要是Base24算法
[打印本页]
作者: electronixtar
时间: 2007-2-11 10:19
标题: VBS获得Windows CD-KEY,主要是Base24算法
原帖地址:
http://www.visualbasicscript.com/m_42793/mpage_1/key_/tm.htm
这个VBS相当的经典,用到了WMI,注册表,Base24解码算法。如果知道 Office 2003 的注册表位置,也可以顺理成章的获得Office 的 CD-KEY
' ##############################################################
' # #
' # VBScript to find the DigitalProductID for your #
' # Microsoft windows Installation and decode it to #
' # retrieve your windows Product Key #
' # #
' # ----------------------------------------------- #
' # #
' # Created by: Parabellum #
' # #
' ##############################################################
'
' <--------------- Open Registry Key and populate binary data into an array -------------------------->
'
const HKEY_LOCAL_MACHINE = &H80000002
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
strValueName = "DigitalProductId"
strComputer = "."
dim iValues()
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
oReg.GetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,iValues
Dim arrDPID
arrDPID = Array()
For i = 52 to 66
ReDim Preserve arrDPID( UBound(arrDPID) + 1 )
arrDPID( UBound(arrDPID) ) = iValues(i)
Next
' <--------------- Create an array to hold the valid characters for a microsoft Product Key -------------------------->
Dim arrChars
arrChars = Array("B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9")
' <--------------- The clever bit !!! (Decrypt the base24 encoded binary data)-------------------------->
For i = 24 To 0 Step -1
k = 0
For j = 14 To 0 Step -1
k = k * 256 Xor arrDPID(j)
arrDPID(j) = Int(k / 24)
k = k Mod 24
Next
strProductKey = arrChars(k) & strProductKey
' <------- add the "-" between the groups of 5 Char -------->
If i Mod 5 = 0 And i <> 0 Then strProductKey = "-" & strProductKey
Next
strFinalKey = strProductKey
'
' <---------- This part of the script displays operating system Information and the license Key --------->
'
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
strOS = objOperatingSystem.Caption
strBuild = objOperatingSystem.BuildNumber
strSerial = objOperatingSystem.SerialNumber
strRegistered = objOperatingSystem.RegisteredUser
Next
Set wshShell=CreateObject("wscript.shell")
strPopupMsg = strOS & vbNewLine & vbNewLine
strPopupMsg = strPopupMsg & "Build Number: " & strBuild & vbNewLine
strPopupMsg = strPopupMsg & "PID: " & strSerial & vbNewLine & vbNewLine
strPopupMsg = strPopupMsg & "Registered to: " & strRegistered & vbNewLine & vbNewLine & vbNewLine
strPopupMsg = strPopupMsg & "Your Windows Product Key is:" & vbNewLine & vbNewLine & strFinalKey
strPopupTitle = "Microsoft Windows License Information"
wshShell.Popup strPopupMsg,,strPopupTitle,vbCancelOnly+vbinformation
WScript.Quit
作者: kk130
时间: 2007-2-11 11:02
干嘛不开REGEDIT按F3?
作者: kich
时间: 2007-2-12 12:03
顶啊,不管用什么了!
先看看他代码是怎么写的!究竟是不是想做什么就知道了嘛!
作者: eech
时间: 2007-2-23 02:26
一直是用第三方软件.没想到不用第三方软件可以/顶了
作者: newaifi
时间: 2007-2-23 21:56
强呢 !
作者: slore
时间: 2007-2-23 23:29
WMI可以不用
作者: Kinglion
时间: 2007-2-24 23:58
绝对精点的代码。实际上在官方网站还有更多的好东西,就在于你是否肯花时间去掏宝了。