Windows新版算號器技術原理

來源:互聯網
上載者:User

1.產品ID(ProductID)
  產品ID是由五組十進位數組成,如下:
AAAAA-BBB-CCCCCCC-DDEEE
  如果你用“ProductID”搜尋註冊表,你會發現一個與你安裝的軟體有關的產品ID。在Windows的控制台裡的系統裡,你可以找到Windows作業系統的產品ID。

每組數字所代表的意義如下表:
數字 | 意義
--------+-------------------------------------------------
AAAAA | 產品編號,例:55661為windows pro版 55660為HOME版
BBB | 初級產品序號的最高有效三位元字
| (見下文)
CCCCCCC | 初級產品序號的最低有效六位元字以及
| 校正數位的和 (見下文)
DD | 用來驗證產品序號的公開密匙索引.例:PRO版為22,VLK版為23
EEE | 隨機值(用於電話啟用時,產生不同的安裝ID)
在上面的CCCCCCC部分中,由一個校正數位和六個數字組成。校正數位是這樣計算得到的:將所有數位相加,包含一個檢驗數位,可以被七整除。

例:初級產品序號的最低有效六位元字是728439
7 + 2 + 8 + 4 + 3 + 9 = 33
所以檢驗數位為2,因為
7 + 2 + 8 + 4 + 3 + 9 + 2 = 33 + 2 = 35
所得到的結果35可被七整除。所以產品ID中的CCCCCCC部分的結果為7284392。

2、產品序號組成
這25位的序號,是用來區分每份微軟產品的產品序號。產品序號由五組被“-”分隔開,由字母數字混合編製的字串組成,每組字串是由五個字串組成。如下:

FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK

每個字元是取自於以下24個字母及數字之中的一個:
B C E F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9
採用這24個字元的原因是為了避免混淆相似的字母和數字,如I和1,O和0等,減少產生不必要的麻煩。
這25個字元的產品序號是由長度為114bits用二進位表示的產品序號用Base-24進行編碼得到的。114bits的二進位產品序號按高位在後排列,各bit定義如下:

[ X XXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXX ] Total 114 Bits
| | | \ 55 Bits Sign
| | \ 28 Bits Hash
| \ 30 Bits Serial \ 31 Bits Data
\ 1 Bits Flag

Flag: 不明標誌,目前所見的各類Key中這一位總是為0。
Serial:產品ID的縮寫,轉成十進位表示為AAAABBBBBB,對應顯示為:
零售版:xxxxx-AAA-BBBBBBx-xxxxx
OEM版: xxxxx-OEM-0AAAABx-BBBBB
以上31bits總稱為Data,是產品序號中的基本部分。
Hash:Data經特定處理得到的結果,見後文。
Sign:Hash值的橢圓曲線簽名,見後文。

3、橢圓曲線簽名演算法
所謂的橢圓曲線是指這樣一類曲線方程:
Y2 + a1XY + a3Y = X3 + a2X2 + a4X + a6
在密碼學裡用的是它的兩個特例,而微軟公司用的更是特例中的特例:
Y2 = X3 + aX +b (mod p)
當a、b、p選定後,就可以確定一個橢圓曲線,再選擇一個產生點G(gx,gy),於是,存在一個最小的整數q使得q×G=0,然後,再任意選擇一個整數k<q,求出點K(kx,ky)=k×G,這樣橢圓曲線簽名演算法的Key就全產生了:
公開密鑰為:a,b,p, G(gx,gy), K(kx,ky)
私人密鑰為:q,k

要對Data簽名時:
(1).先任意選擇一個整數r<q,求點R(rx,ry)=r×G;
(2).將Data、rx、ry進行SHA-1(4)運算,取結果中的28位得到Hash;
(3).求Sign = r–Hash×k (mod q);
(4).把Data、Hash、Sign三個數組合編碼後得到25位的產品序號。

驗證產品序號時:
(1).把25位產品序號解碼後,拆分為Data、Hash、Sign;
(2).求點R(rx,ry)=Sign×G + Hash×K(mod p);
(3). 將Data、rx、ry進行SHA-1運算,取結果中的28位得到Hash’;
(4).如果Hash=Hash’,則該產品序號為有效。

4. 公開密鑰
從前文可以看出,為了驗證產品序號,微軟公司必須公開橢圓曲線簽名演算法中的公開密鑰。我們可以從Windows XP安裝光碟片中的檔案pidgen.dll的BINK資源裡找到(其他產品如Office則被包在*.msi裡)。而且一共有兩組。從目前已知的Key組合來看,第一組公開密鑰是用以零售版本的,第二組公開密鑰則用於OEM版本。兩個產品的Key能否通用就在於對應的公開密鑰是否相同,比如中文版的Windows 2000的Pro/Srv/AdvSrv的第二組密鑰也是相同的,即一個中文Windows 2000 Pro的OEM版的Key,可同時供 中文Windows 2000 Srv/Adv的OEM版使用。
  
5.破解及其難度
要破解產品序號產生演算法,必須從微軟公司公開的密鑰中求出對應的私人密鑰,即只要求出q和k即可。從BINK中公開的密鑰來看,p 是一個384 bits的質數,看起來計算量好像至少要O(2168)才行,但微軟公司設計中存在一個嚴重缺陷,使實際工作量降低到只O(228)就可以了。為什麼相差這麼遠?回頭看看2.(3)中的式子:Sign = r - Hash * k ( mod q )通常情況下q可以是很大的值,因此Sign應該也很大,但微軟公司為了減少使用者輸入的產品序號的數量,把Sign的值限死在55 bits,因此,自然也限定了q最多也不能超過56 bits。依此類推,由於k<q,所以k也不能超過56 bits,也就是說我們面對的只是兩個最多256的資料而已。把q和k求出來了,就可以根據上面所述的演算法,編寫出微軟公司所有採用該技術產品的算號器!

結論:

估計所有微軟公司產品的序號產生演算法是一樣的.只是公有密鑰和私人密鑰不同而已,只要我們求出私人密鑰q和k,要產生序號,就容易得多了.新版算號器的作者就是把各個版本的私人密鑰q和k求出來了.

新版算號器的工作流程:
在新版算號器中輸入初級產品ID的範圍,就可以隨機確定產品ID.初級產品ID中的前三位,根據算號啟用成功經驗和統計正版序號的結果,每個版本都有特定數字.例在PRO版中010,011啟用成功機率很高,在HOME版中005,006啟用機率很高.後7位中有一位是效驗位,其它6位隨機指定即可,所以只需輸入6位.接著程式會自動產生一個隨機數,也就是演算法中的r.最後根據上面的演算法,得出產品序號.使用不同的隨機數,對同一個產品ID運算,所得到的序號是不相同的!學過數學的朋友可以看出,這個演算法的複雜度並不高,用現在的電腦,很快就可以算出來,這就是新版算號器速度驚人,準確率高的根本原因!

完美算號器!
關於算號啟用的問題,大家一直爭論不已,最主要就是XP的啟用問題,XP在裝了SP後是不可以啟用的了,原因就是微軟加了序號檢測機制,也就是在啟用過程中,序號本身也要發送到微軟的啟用伺服器進行驗證.我估計驗證機制可能採用了這兩種方法的其中一個:第一:微軟有個序號出廠資料庫.對於要啟用的系統所用的序號沒有出廠記錄,就說明該序號是由算號器產生的,不給予啟用.我估計這個方法可能性不大!第二:對序號本身存在一個檢測機制!也就是說,算號器算出來的序號,只有符合某一定規律的,才能夠啟用,而這個機制只有微軟公司掌握,破解了這個機制就有可能製作出可以算出真正正版的序號的算號器,換一句話就是可以製作出裝了SPX都可以啟用的最完美的算號器!!!破解這個檢測機制的最大希望就是上面所說的r!採用特定的產品ID只有配合特定的r算出來的序號,才是正版的序號!要破解這個檢測機制,方法就是收集大量的正版序號,分析出產品ID和r的關係,就可以製作出最完美的算號器!所以我估計最完美的算號器,將在不久的將來面世!

其實算號器的編寫並不難的,只要求出各個版本的私人密鑰q和k(這需要一點時間),利用上面的演算法就可以製作出NIN1的算號器,這需要一定的數學知識和一定的編程功力!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.