Open-AudIT
https://www.open-audit.org/phpBB3/

Added more CD Keys
https://www.open-audit.org/phpBB3/viewtopic.php?f=20&t=5765
Page 1 of 1

Author:  kumail [ Fri Sep 23, 2011 6:51 am ]
Post subject:  Added more CD Keys

Below is code to add CD Keys for Microsoft Visual Studio 2005, 2008, and 2010, as well as Microsoft SQL Server 2005 (2000 and 2008 was included). I originally wrote it for OAv1, and re-wrote it for OAv2....

[code]''''''''''''''''''''''''''''''''
' SQL Svr 2005 '
''''''''''''''''''''''''''''''''
strKeyPath = "SOFTWARE\Microsoft\Microsoft SQL Server\90\ProductID\"
key_name = "Microsoft SQL Server 2005"
key_release = ""
key_edition = ""
subKey = "DigitalProductID77556"
key_text = GetSN(strComputer,HKEY_LOCAL_MACHINE,strKeyPath,subKey)
if IsNull(key_text) or key_text = "" then
strKeyPath = "SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\Setup\"
subKey = "DigitalProductID"
key_text = GetSN(strComputer,HKEY_LOCAL_MACHINE,strKeyPath,subKey)
if IsNull(key_text) or key_text = "" then
else
result = result & " <key>" & vbcrlf
result = result & " <key_name>" & escape_xml(key_name) & "</key_name>" & vbcrlf
result = result & " <key_text>" & escape_xml(key_text) & "</key_text>" & vbcrlf
result = result & " <key_release>" & escape_xml(key_release) & "</key_release>" & vbcrlf
result = result & " <key_edition>" & escape_xml(key_edition) & "</key_edition>" & vbcrlf
result = result & " </key>" & vbcrlf
key_text = ""
key_release = ""
key_edition = ""
end if
else
result = result & " <key>" & vbcrlf
result = result & " <key_name>" & escape_xml(key_name) & "</key_name>" & vbcrlf
result = result & " <key_text>" & escape_xml(key_text) & "</key_text>" & vbcrlf
result = result & " <key_release>" & escape_xml(key_release) & "</key_release>" & vbcrlf
result = result & " <key_edition>" & escape_xml(key_edition) & "</key_edition>" & vbcrlf
result = result & " </key>" & vbcrlf
key_text = ""
key_release = ""
key_edition = ""
end if[/code]

[code]''''''''''''''''''''''''''''''''
' Visual Studio 2010 '
''''''''''''''''''''''''''''''''
strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Registration"
key_name = "Microsoft Visual Studio 2010"
key_release = ""
key_edition = ""
subKey = "ProductID"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,subKey,key

If IsNull(key) OR key = "" then
strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Registration\01018"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,subKey,key
if IsNull(key) OR key = "" then
else
key_text = key
result = result & " <key>" & vbcrlf
result = result & " <key_name>" & escape_xml(key_name) & "</key_name>" & vbcrlf
result = result & " <key_text>" & escape_xml(key_text) & "</key_text>" & vbcrlf
result = result & " <key_release>" & escape_xml(key_release) & "</key_release>" & vbcrlf
result = result & " <key_edition>" & escape_xml(key_edition) & "</key_edition>" & vbcrlf
result = result & " </key>" & vbcrlf
key_text = ""
key_release = ""
key_edition = ""
end if
else
key_text = key
result = result & " <key>" & vbcrlf
result = result & " <key_name>" & escape_xml(key_name) & "</key_name>" & vbcrlf
result = result & " <key_text>" & escape_xml(key_text) & "</key_text>" & vbcrlf
result = result & " <key_release>" & escape_xml(key_release) & "</key_release>" & vbcrlf
result = result & " <key_edition>" & escape_xml(key_edition) & "</key_edition>" & vbcrlf
result = result & " </key>" & vbcrlf
key_text = ""
key_release = ""
key_edition = ""
end if


''''''''''''''''''''''''''''''''
' Visual Studio 2008 '
''''''''''''''''''''''''''''''''
strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Registration"
key_name = "Microsoft Visual Studio 2008"
key_edition = ""
key_release = ""
subKey = "ProductID"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,subKey,key_text
if IsNull(key_text) or key_text = "" then
' do nothing
else
result = result & " <key>" & vbcrlf
result = result & " <key_name>" & escape_xml(key_name) & "</key_name>" & vbcrlf
result = result & " <key_text>" & escape_xml(key_text) & "</key_text>" & vbcrlf
result = result & " <key_release>" & escape_xml(key_release) & "</key_release>" & vbcrlf
result = result & " <key_edition>" & escape_xml(key_edition) & "</key_edition>" & vbcrlf
result = result & " </key>" & vbcrlf
key_text = ""
key_release = ""
key_edition = ""
end if


''''''''''''''''''''''''''''''''
' Visual Studio 2005 '
''''''''''''''''''''''''''''''''
strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\8.0\Registration"
key_name = "Microsoft Visual Studio 2005"
key_edition = ""
key_release = ""
subKey = "ProductID"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,subKey,key_text
if IsNull(key_text) or key_text = "" then
' do nothing
else
result = result & " <key>" & vbcrlf
result = result & " <key_name>" & escape_xml(key_name) & "</key_name>" & vbcrlf
result = result & " <key_text>" & escape_xml(key_text) & "</key_text>" & vbcrlf
result = result & " <key_release>" & escape_xml(key_release) & "</key_release>" & vbcrlf
result = result & " <key_edition>" & escape_xml(key_edition) & "</key_edition>" & vbcrlf
result = result & " </key>" & vbcrlf
key_text = ""
key_release = ""
key_edition = ""
end if[/code]

[code]Function GetSN(sComputer,sRoot,sKeyPath,sValueName)
On Error Resume Next
Set objRegistry = GetObject("winmgmts:\\" & sComputer & "\root\default:StdRegProv")
If Err.Number = 0 Then
'On Error Resume Next
'HexBuf = WshShell.RegRead(sRegLocation)
intReturn = objRegistry.GetBinaryValue(sRoot, sKeyPath, sValueName, Hexbuf)
If intReturn = 0 Then
'If Err.Number = 0 Then
'On Error GoTo 0
For l = LBound(HexBuf) To UBound(HexBuf)
tmp=tmp & " "& Hex (HexBuf(l))
Next

StartOffset = 52
EndOffset =67
Dim Digits (24)

Digits (0) = "B" : Digits (1) = "C": Digits (2) = "D": Digits (3) = "F":
Digits (4) = "G": Digits (5) = "H": Digits (6) = "J": Digits (7) = "K":
Digits (8) = "M": Digits (9) = "P": Digits (10) = "Q": Digits (11) = "R":
Digits (12) = "T": Digits (13) = "V": Digits (14) = "W": Digits (15) = "X":
Digits (16) = "Y": Digits (17) = "2": Digits (18) = "3": Digits (19) = "4":
Digits (20) = "6" : Digits (21) = "7" : Digits (22) = "8": Digits (23) = "9"

dLen = 29
sLen = 15
Dim HexDigitalPID (15)
Dim Des (30)
For i = StartOffset To EndOffset
HexDigitalPID (i-StartOffset) = HexBuf(i)
tmp2=tmp2 & " "& Hex (HexDigitalPID(i-StartOffset))
Next

KEYSTRING =""
For i=dLen-1 To 0 Step -1
If ((i + 1) mod 6) = 0 Then
Des (i) = "-"
KEYSTRING =KEYSTRING & "-"
Else
HN = 0
For N = (sLen -1) To 0 Step -1
Value = ( (HN *2^8 ) Or HexDigitalPID (N))
HexDigitalPID (N) = Value \ 24
HN = (Value mod 24)
Next
Des(i) = Digits(HN)
KEYSTRING =KEYSTRING & Digits(HN)
End If
Next
KEYSTRING2 = StrReverse (KEYSTRING)
GetSN = KEYSTRING2
Else
'Err.Clear
'On Error GoTo 0
'GetSN = sProduct & " is not installed"
End If
Else
Err.Clear
On Error GoTo 0
'GetSN = "Error reading registry of " & sComputer
End If
End Function[/code]

I always included [code]OR key = "" then[/code] because sometimes the function would catch keys as "" but not null and insert that into the database.

Also, for Visual Studio 2010 and SQL Server 2005 I have 2 possible paths as depending on the Windows version and such, they were found in 2 different locations.

Author:  Mark [ Thu Oct 06, 2011 12:16 pm ]
Post subject:  Re: Added more CD Keys

Have added to my version of the audit_windows script.
Thanks a heap.
Will be in next release.

Page 1 of 1 All times are UTC + 10 hours
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/