重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
去找一個叫“produkey”的小軟件,它可以幫你查到的微軟的多數軟件的序列號。
創新互聯建站專注于連山網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供連山營銷型網站建設,連山網站制作、連山網頁設計、連山網站官網定制、重慶小程序開發公司服務,打造連山網絡公司原創品牌,更為您提供連山網站排名全網營銷落地服務。
提示,部分殺軟會把它當成惡意軟件,因為它屬于偷序號,密碼一類的,連著你的win的序號都會給你找出來。不放心的話,自個去網上按“produkey”這個名字去找。
反正我傳上后,百度是通過的,說“已經過百度安全檢測”呵呵。
另外想說的是,SQL的序列號不值錢(正經的買因來的除外)網上一搜就知道了。
2. 利用Powershell 解碼
以下powershell函數用于解碼/找回SQL Server序列號,在SQL Server 2008, 2008 R2實例上測試通過:
function Get-SQLServerKey {
## function to retrieve the license key of a SQL 2008 Server.
param ($targets = ".")
$hklm = 2147483650
$regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\Setup"
$regValue1 = "DigitalProductId"
$regValue2 = "PatchLevel"
$regValue3 = "Edition"
Foreach ($target in $targets) {
$productKey = $null
$win32os = $null
$wmi = [WMIClass]"\\$target\root\default:stdRegProv"
$data = $wmi.GetBinaryValue($hklm,$regPath,$regValue1)
[string]$SQLver = $wmi.GetstringValue($hklm,$regPath,$regValue2).svalue
[string]$SQLedition = $wmi.GetstringValue($hklm,$regPath,$regValue3).svalue
$binArray = ($data.uValue)[52..66]
$charsArray = "B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9"
## decrypt base24 encoded binary data
For ($i = 24; $i -ge 0; $i--) {
$k = 0
For ($j = 14; $j -ge 0; $j--) {
$k = $k * 256 -bxor $binArray[$j]
$binArray[$j] = [math]::truncate($k / 24)
$k = $k % 24
}
$productKey = $charsArray[$k] + $productKey
If (($i % 5 -eq 0) -and ($i -ne 0)) {
$productKey = "-" + $productKey
}
}
$win32os = Get-WmiObject Win32_OperatingSystem -computer $target
$obj = New-Object Object
$obj | Add-Member Noteproperty Computer -value $target
$obj | Add-Member Noteproperty OSCaption -value $win32os.Caption
$obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture
$obj | Add-Member Noteproperty SQLver -value $SQLver
$obj | Add-Member Noteproperty SQLedition -value $SQLedition
$obj | Add-Member Noteproperty ProductKey -value $productkey
$obj
}
}
一、序列號保存在哪
不要被ProductCode迷惑,就算只安裝了SQL Server客戶端,注冊表里也會有這個鍵值,并不是序列號,DigitalProductID才是,但經過了Base24編碼,需要解碼才行。
可以看到,對于不同版本,注冊表的路徑不一樣,但是鍵是一致的。
Express版是免費的,沒有序列號,從而注冊表也沒DigitalProductID這個鍵。
二、如何解碼序列號
利用Powershell 解碼
以下powershell函數用于解碼/找回SQL Server序列號,在SQL Server 2008, 2008 R2實例上測試通過:
SQL Server 2012序列號里字符的格式發生了變化, data.uValue)[0..16] 不同于SQL Server 2008的 data.uValue)[52..66],同時別忘了改下注冊表路徑$regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup",修改后如下,在SQL Server 2012實例上測試通過:
調用powershell函數并輸出序列號
打開powershell,把上面的函數貼進去,回車,輸入Get-SQLServerKey 并回車;
或者把上面的函數存為.ps1文件直接引用:
輸出結果如下:
根據powershell 腳本翻譯成的Python base24 解碼函數:
SQL Server沒有序列,對應的是標識列。
該種列具有以下三種特點:
1、列的數據類型為不帶小數的數值類型
2、在進行插入(Insert)操作時,該列的值是由系統按一定規律生成,不允許空值
3、列值不重復,具有標識表中每一行的作用,每個表只能有一個標識列。
標識列的創建與修改
標識列的創建與修改,通常在企業管理器和用Transact-SQL語句都可實現,使用企業管理管理器比較簡單,請參考SQL Server的聯機幫助,這
里只討論使用Transact-SQL的方法
1、創建表時指定標識列
標識列可用 IDENTITY 屬性建立,因此在SQL Server中,又稱標識列為具有IDENTITY屬性的列或IDENTITY列。
下面的例子創建一個包含名為ID,類型為int,種子為1,遞增量為1的標識列
CREATE TABLE T_test
(ID int IDENTITY(1,1),
Name varchar(50)
)
--插入數據
INSERT T_test(Name) VALUES('張三');