2008年5月16日 星期五
如何下載微軟官方正版軟體?
step1. 找名稱
step2.用p2p軟體或google來找出step1找到的名稱
step3.用SHA1 驗證
- 方法a.軟體若有出光碟,用CD Labels來找,網站
- 方法b.用MSDN Subscriptions 找出檔名(此法較好,因為微軟有附SHA1、CRC驗證)
step2.用p2p軟體或google來找出step1找到的名稱
step3.用SHA1 驗證
2008年5月15日 星期四
Windows XP 授權方式
Microsoft 軟體授權有三種主要方式:彩盒包裝產品、原始設備廠商及大量授權。
英文官網
中文官網
彩盒包裝產品 Full Packaged Product (FPP/Retail)
就是在各大軟體店看到有漂亮包裝的那種。若以作業系統來說的話,可以昇級安裝,也可以全新安裝。
Windows XP 光碟標籤為例:WXPFPP_EN
W:Windows
X:XP
P:Professional
FPP:Full Packaged Product
EN:英文
原始設備廠商 Original Equipment Manufacturer (OEM)
只能隨機器出貨,不能零售,所以叫做隨機版。若以作業系統來說的話,只能全新安裝 ,不能從舊有操作系統昇級。包裝不像零售版精美,通常只有一片CD和說明書(授權書)。
Windows XP 光碟標籤為例:WXPOEM_EN
Windows XP Professional OEM 英文版
大量授權版 Volume License Programs
需要五件到上千件軟體授權的話,可以購買這種授權。
Windows XP 光碟標籤為例:WXPVOL_EN
Windows XP Professional 大量授權 英文版(VOL沒有Home版)
其中又分五種:
英文官網
中文官網
彩盒包裝產品 Full Packaged Product (FPP/Retail)
就是在各大軟體店看到有漂亮包裝的那種。若以作業系統來說的話,可以昇級安裝,也可以全新安裝。
Windows XP 光碟標籤為例:WXPFPP_EN
W:Windows
X:XP
P:Professional
FPP:Full Packaged Product
EN:英文
原始設備廠商 Original Equipment Manufacturer (OEM)
只能隨機器出貨,不能零售,所以叫做隨機版。若以作業系統來說的話,只能全新安裝 ,不能從舊有操作系統昇級。包裝不像零售版精美,通常只有一片CD和說明書(授權書)。
Windows XP 光碟標籤為例:WXPOEM_EN
Windows XP Professional OEM 英文版
大量授權版 Volume License Programs
需要五件到上千件軟體授權的話,可以購買這種授權。
Windows XP 光碟標籤為例:WXPVOL_EN
Windows XP Professional 大量授權 英文版(VOL沒有Home版)
其中又分五種:
- Open License
- Select License
- Enterprise Agreement
- Enterprise Subscription Agreement
- Academic Volume Licensing
Windows XP 序號產生原理(橢圓曲線法)
http://www.eyny.com/thread-1426794-1-1.html
從Win95起,MS(註:即Microsoft,下同)的產品安裝Key從原來的10位數字改為25位字符,
這一改動,****著MS告別了簡單的校驗和,從此投入了橢圓曲線法的懷抱。
從密碼學的角度來看,這絕對是一個裡程碑, 因為當時橢圓曲線法仍在研究論證階段,
MS是第一個將之實用以商業產品的廠家。那麼在這25個字符裡到底有什麼呢?
1.Base24
這25個字符實際是114bits的數據用Base24進行UUCode後的結果,做為安裝Key,
這個Base必須絕對避免誤認,所以MS選擇了以下這24個字符做為UUCode的Base:BCDFGHJKMPQRTVWXY2346789
所以,如果你的安裝Key 有這24個字符以外的字符的話,你完全可以把它丟到垃圾筒裡去了══不用試就知道它根本通不過了。
2.114 bits
UUDecode後得到的114位按Intel高位在後的格式表示如下:
[ 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:用戶序列號,轉成十進製表示為AAAABBBBBB,對應顯示為:
零售版:xxxxx-AAA-BBBBBBx-xxxxx
OEM版: xxxxx-OEM-0AAAABx-BBBBB
以上31bits總稱為Data,是CDKey中的基本部分。
Hash:Data經特定處理得到的結果,見後文。
Sign:Hash值的橢圓曲線簽名,見後文。
3.橢圓曲線簽名算法
要說明橢圓曲線簽名算法可不是一件容易的事,有興趣的可以自己用「橢圓曲線」或是「elliptic curve」
在搜索引擎找相關的資料來看吧,這裡只簡單介紹MS的用法。
所謂橢圓曲線是指這樣一類曲線方程:y^2 + a1*xy + a3*y = x^3 + a2*x^2 + a4*x + a6
在密碼學裡用的是它的兩個特例,而MS用的更是這兩個特例中的特例:y^2 = x^3 + a*x + b ( mod p )
當a、b、p選定後,就可以確定一個橢圓曲線,再選擇一個生成點 G(gx,gy),
於是,存在一個最小的整數q使得q*G=O,然後,再任意選擇一個整數 k K(kx,ky)=k*G,這樣橢圓曲線簽名算法的Key就全生成了:
公開密鑰為:a,b,p,G(gx,gy),K(kx,ky)
私有密鑰為:a,b,p,G(gx,gy),q,k
要對Data簽名時:
A.先任意選擇一個整數r B.將Data、rx、ry共100個字節求SHA-1,取結果中的28位得到Hash;
C.求Sign = r - Hash * k ( mod q );
D.把Data、Hash、Sign三個數組合後UUCode得到25位CDKey。
驗證CDKey時:
A.把25位CDKey先UUDecode再拆分後提到Data、Hash、Sign;
B.求點R( rx, ry ) = Sing * G + Hash * K ( mod p );
C.將Data、rx、ry共100個字節求SHA-1,取結果中的28位得到Hash\';
D.如果Hash = Hash\',則該CDKey為有效Key。
4.BINK
從前面的說明可以看出,為了驗證CDKey,MS 必須公開橢圓曲線簽名算法中的公開密鑰,那麼這個公開密鑰放在哪裡呢?
答案是在pidgen.dll裡的BINK資源裡(其他產品如Office則被包在*.MSI),而且一共有兩組,從目前已知的Key組合來看,
第一組密鑰是用以零售版本的,第二組則用於OEM版本。兩個產品的Key能否通用就在於對應的密鑰是否相同,
比如中文版的Windows 2000的Pro/Srv/AdvSrv的第二組密鑰也是相同的,即一個PWindows 2000 Pro的OEM版的Key,
可同時供 PWindows 2000 Srv/Adv的OEM版使用。
5.破解及其難度
要破解CDKey的生成算法,必須從MS 公開的密鑰中求出對應的私有密鑰,即只要求出q和k即可。從BINK中公開的密鑰來看,
p 是一個384 bits的質數,看起來計算量好像至少要O(2^168)才行,但MS設計中一個缺陷(?)使實際工作量降低到只有O(2^28)就可以了。
為什麼相差這麼遠?
回頭看看3.C中的式子: Sign = r - Hash * k ( mod q )
通常情況下q可以是很大的值,因此Sign應該也很大,但MS 為了減少用戶輸入的CDKey的數量,把Sign的值限死在55 bits,因此,
自然也限定了q最多也不能超過56 bits。依此類推,由於k 作者曾經在一台賽揚II 800的機器上只用6個小時就解出某組密鑰的q值,
最多時在一台雷鳥1G上用了28個小時才算出另一組密鑰的k值, 其他平均大約都在十個小時左右就可以求出。
註:關於什麼-640-和-005-,其實沒什麼意思,例如當我裝xp打入序號為FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8,
我的產品號就是55274-640-0000356-23174,而我打入3H87P-VHQGD-M74M6-8MHMH-3JRB3時,
我的產品號就變成了55274-643-6941852-23174,這證明了什麼?其實產品號的頭五個key,是****windows的版本,
而接著的十個key,就是****你裝windows時輸入的序號,最後的五個key是****光盤的cd-code罷了.............所以,
產品號不是-005-的都未必不能激活簡體中文專業版的..................
從Win95起,MS(註:即Microsoft,下同)的產品安裝Key從原來的10位數字改為25位字符,
這一改動,****著MS告別了簡單的校驗和,從此投入了橢圓曲線法的懷抱。
從密碼學的角度來看,這絕對是一個裡程碑, 因為當時橢圓曲線法仍在研究論證階段,
MS是第一個將之實用以商業產品的廠家。那麼在這25個字符裡到底有什麼呢?
1.Base24
這25個字符實際是114bits的數據用Base24進行UUCode後的結果,做為安裝Key,
這個Base必須絕對避免誤認,所以MS選擇了以下這24個字符做為UUCode的Base:BCDFGHJKMPQRTVWXY2346789
所以,如果你的安裝Key 有這24個字符以外的字符的話,你完全可以把它丟到垃圾筒裡去了══不用試就知道它根本通不過了。
2.114 bits
UUDecode後得到的114位按Intel高位在後的格式表示如下:
[ 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:用戶序列號,轉成十進製表示為AAAABBBBBB,對應顯示為:
零售版:xxxxx-AAA-BBBBBBx-xxxxx
OEM版: xxxxx-OEM-0AAAABx-BBBBB
以上31bits總稱為Data,是CDKey中的基本部分。
Hash:Data經特定處理得到的結果,見後文。
Sign:Hash值的橢圓曲線簽名,見後文。
3.橢圓曲線簽名算法
要說明橢圓曲線簽名算法可不是一件容易的事,有興趣的可以自己用「橢圓曲線」或是「elliptic curve」
在搜索引擎找相關的資料來看吧,這裡只簡單介紹MS的用法。
所謂橢圓曲線是指這樣一類曲線方程:y^2 + a1*xy + a3*y = x^3 + a2*x^2 + a4*x + a6
在密碼學裡用的是它的兩個特例,而MS用的更是這兩個特例中的特例:y^2 = x^3 + a*x + b ( mod p )
當a、b、p選定後,就可以確定一個橢圓曲線,再選擇一個生成點 G(gx,gy),
於是,存在一個最小的整數q使得q*G=O,然後,再任意選擇一個整數 k K(kx,ky)=k*G,這樣橢圓曲線簽名算法的Key就全生成了:
公開密鑰為:a,b,p,G(gx,gy),K(kx,ky)
私有密鑰為:a,b,p,G(gx,gy),q,k
要對Data簽名時:
A.先任意選擇一個整數r B.將Data、rx、ry共100個字節求SHA-1,取結果中的28位得到Hash;
C.求Sign = r - Hash * k ( mod q );
D.把Data、Hash、Sign三個數組合後UUCode得到25位CDKey。
驗證CDKey時:
A.把25位CDKey先UUDecode再拆分後提到Data、Hash、Sign;
B.求點R( rx, ry ) = Sing * G + Hash * K ( mod p );
C.將Data、rx、ry共100個字節求SHA-1,取結果中的28位得到Hash\';
D.如果Hash = Hash\',則該CDKey為有效Key。
4.BINK
從前面的說明可以看出,為了驗證CDKey,MS 必須公開橢圓曲線簽名算法中的公開密鑰,那麼這個公開密鑰放在哪裡呢?
答案是在pidgen.dll裡的BINK資源裡(其他產品如Office則被包在*.MSI),而且一共有兩組,從目前已知的Key組合來看,
第一組密鑰是用以零售版本的,第二組則用於OEM版本。兩個產品的Key能否通用就在於對應的密鑰是否相同,
比如中文版的Windows 2000的Pro/Srv/AdvSrv的第二組密鑰也是相同的,即一個PWindows 2000 Pro的OEM版的Key,
可同時供 PWindows 2000 Srv/Adv的OEM版使用。
5.破解及其難度
要破解CDKey的生成算法,必須從MS 公開的密鑰中求出對應的私有密鑰,即只要求出q和k即可。從BINK中公開的密鑰來看,
p 是一個384 bits的質數,看起來計算量好像至少要O(2^168)才行,但MS設計中一個缺陷(?)使實際工作量降低到只有O(2^28)就可以了。
為什麼相差這麼遠?
回頭看看3.C中的式子: Sign = r - Hash * k ( mod q )
通常情況下q可以是很大的值,因此Sign應該也很大,但MS 為了減少用戶輸入的CDKey的數量,把Sign的值限死在55 bits,因此,
自然也限定了q最多也不能超過56 bits。依此類推,由於k 作者曾經在一台賽揚II 800的機器上只用6個小時就解出某組密鑰的q值,
最多時在一台雷鳥1G上用了28個小時才算出另一組密鑰的k值, 其他平均大約都在十個小時左右就可以求出。
註:關於什麼-640-和-005-,其實沒什麼意思,例如當我裝xp打入序號為FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8,
我的產品號就是55274-640-0000356-23174,而我打入3H87P-VHQGD-M74M6-8MHMH-3JRB3時,
我的產品號就變成了55274-643-6941852-23174,這證明了什麼?其實產品號的頭五個key,是****windows的版本,
而接著的十個key,就是****你裝windows時輸入的序號,最後的五個key是****光盤的cd-code罷了.............所以,
產品號不是-005-的都未必不能激活簡體中文專業版的..................
Windows XP 產品識別碼 黑名單
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;326904
XXXXX-640-0000356-23XXX
XXXXX-640-2001765-23XXX
XXXXX-640-643718x-23XXX
XXXXX-641-309376x-23XXX
XXXXX-642-064580x-23XXX
XXXXX-642-464364x-23XXX
XXXXX-643-334701x-23XXX
XXXXX-644-081772x-23XXX
XXXXX-644-451265x-23XXX
XXXXX-644-874896x-23XXX
XXXXX-644-933704x-23XXX
XXXXX-644-962396x-23XXX
XXXXX-645-833254x-23XXX
XXXXX-645-994962x-23XXX
XXXXX-646-031843x-23XXX
XXXXX-646-104081x-23XXX
XXXXX-646-105103x-23XXX
XXXXX-647-318838x-23XXX
XXXXX-647-592029x-23XXX
XXXXX-647-677834x-23XXX
XXXXX-648-301691x-23XXX
XXXXX-648-819992x-23XXX
XXXXX-649-106765x-23XXX
XXXXX-649-941392x-23XXX
XXXXX-650-292312x-23XXX
訂閱:
文章 (Atom)