每次你安装Windows,总需要输入一个CD Key才能继续完成安装过程。这个CD Key其实就是证明你是正版用户的身份证。从Windows 98起,微软产品的CD Key从原来的10位数字改为25位字符,这个改动代表微软在加密技术上告别了简单的校验和,从此投入了椭圆曲线法的怀抱。从密码学的角度来看,这绝对是一个里程碑,因为当时椭圆曲线法仍在研究论证阶段,微软是第一个将之用于商业产品的厂家。
那么这25个字符究竟是由什么组成的呢?这25个字符实际是将114位的数据用Base24进行UUCode后的结果,作为安装过程所必须的号码,这个Base必须绝对避免误认,所以微软选择了以下这24个字符做为UUCode的Base:BCDFGHJKMPQRTVWXY2346789。因此,如果你记忆中的CD Key出现这24个字符以外的字符,那不用试就知道它根本通不过了,最好还是去查对核实一下吧!为了验证CD Key,微软必须公开椭圆曲线签名算法中的公开密钥,那么这个公开密钥放在哪里呢?答案就在pidgen.dll里的BINK资源里(其他产品如Office则被包在*.MSI中),而且一共有两组,从目前已知的Key组合来看,第一组密钥是用以零售版本的,第二组则用于OEM版本。两个产品的Key能否通用就在于对应的密钥是否相同,比如中文版的Windows 2000的Pro/Srv/AdvSrv的第二组密钥也是相同的,即一个PWindows 2000 Pro的OEM版的Key,可同时供 PWindows 2000 Srv/Adv的OEM版使用。
不过这Windows的CD Key一般都是一串很长的字母和数字字符组合,大多数朋友都不会真记得这个号码吧?如果在安装过程中,临时找不到号码了怎么办?
如果忘记了序列号
如果你正在安装Windows 98,运行安装进程到需要输入CD Key时重新启动电脑。然后在下次启动Windows 98时按F8选择“安全模式”。进入安全模式的Windows 98并取消出现的显卡设置后,单击“开始→运行”,键入regedit并回车,打开注册表编辑器后依次展开“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows”,在“CurrentVersion”主键的右侧窗格中,找到“ProductKey”和RegisteredOwner(如果没有这两项,你可以自己手动新建)。RegisteredOwner完全可以用上自己的的大名,ProductKey则可以随便写,想显得“专业”一点也可以按上面介绍的那样输入25个字符。退出注册表编辑器后重新启动电脑,你就会发现提示你输入CD Key的窗口已经不见了。
激活:让你的XP成为惟一
要破解CD Key的生成算法,必须从微软公开的密钥中求出对应的私有密钥,我曾经看到别人在一台赛扬II 800的机器上只用6个小时就解出某组密钥的q值,最多时在一台雷鸟1G上用了28个小时才算出另一组密钥的k值,其他平均大约都在十个小时左右就可以求出。所以微软也觉得仅仅利用CD Key无法防止盗版的蔓延,于是WPA就诞生了。
WPA(Windows产品激活)就是Windows Product Activation的缩写,它是微软在Windows XP中最新加入的防盗版功能,也是迄今为止Windows XP中最具争议的新功能。WPA主要是通过一系列运算与加密规则完成数据的生成、转换与核对,最终达到监视每一台电脑的目的。想要把这当中所有的规则都说清既没什么意思,也不大可能。如果我们都能琢磨明白,那微软也就不是微软了

。所以我们简单了解一下它的表面现象,窥一窥皮毛也就够了。
当你初次安装操作系统,系统将提示并引导你一步步完成激活过程(如图1)。你可以通过互联网连接到微软的中央ID存储系统,如果网络拥挤也可以使用微软的电话支持服务。微软的电话服务人员会替你连接到中央ID储存系统。你不必担心对方满嘴E文搞得你晕头转向,相信你一定能享受到标准的普通话服务。微软将向你索要两个号码:你的Windows产品序列号和安装后系统显示给你的一个硬件号。这个硬件号总共有50位,如:002666-077894-484890-114573-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX。如果你能痛快地告诉微软这两个号码,微软会返回给你另一组据说仅可使用一次的42位ID号码。将这组号码正确无误地键入系统后你就可以开始你的Windows XP之旅了。

图1
产品号和序列号
如果你没有被这一堆号码搞糊涂的话,你一定可以看出,Windows产品序列号及硬件号是关键所在。
你只要用鼠标右键单击“我的电脑→属性”就可以看到你的产品号,它通常是这么一副丑样子:AAAAA-BBB-CCCCCCC-DDEEE。这个产品序列号其实与你在安装系统的过程中输入的CD Key有很密切的关系。
硬件号是根据产品序列号及电脑硬件情况借助一种算法生成的。在这个50位的硬件号中有8组6位数、1组2位数。8组6位数的最后1位是一个校验码,它的作用是检验前5位数的输入是否正确。将前5位数中的第2位、第4位与前5位数的和相加后除以7,余数即是第6位数。既然微软如此看重这8组数中的前5位,那么它们看来就是这硬件号的最重要的部分了。
件号收集了你的系统内的硬件信息,主要有:
1.硬盘序列号(就是你在DOS下打dir命令时显示出的Volume serial number);
2.网络设备的介质访问控制地址(在DOS下键入netstat -r -n你就能看到它);
3.CD-ROM驱动器的识别码;
4.显示器的识别码;
5.CPU的序列号;
6.硬盘的识别码;
7.SCSI适配器的识别码;
8.IDE控制器的识别码;
9.CPU型号的识别码;
10.内存的大小。
当你的Windows被激活以后,系统每隔一段时间会在启动时校验你的硬件号。校检方法是由系统产生一个当前硬件号,然后与存储在你的电脑里面的硬件号比较。如果系统对你的电脑“搜身”后发现,新的硬件号和原来的硬件号产生变化,而且变化的幅度超过了微软认为可以“容忍”的程度,那你就要倒霉了——你将无法继续使用Windows。解决办法?你需要重复最开始的那些激活步骤,再次激活它。目前的Windwos XP RC1允许用户更换电脑的三种硬件而无需重新激活。不过微软对CPU十分看得起——CPU在硬件号中占据了两个位置,所以在微软看来CPU是两种硬件。
忍耐既是一种无奈,也是美德。在我们没有自己的操作系统之前,无论你喜欢WPA与否,你都只好忍耐。
我们已经知道了,在Windwos XP的安装过程中,你必须输入一套25位的安装序列号才能顺利完成安装。出于隐私方面的考虑,在Windows安装完成后,微软不允许使用系统的用户查看这个序列号。不过这个世界上总少不了有些聪明人喜欢解决这些小难题,一个叫做ViewKeyXP (
http://www.webtree.ca/windowsxp/tools/ViewKeyXP.exe)的小软件就可以让你查看Windows XP的序列号。
被人陷害的无辜
当你知道了自己的序列号,那你有没有意识到这些看似简单的号码可能给你带来不简单的麻烦?在互联网上有很多序列号被泄露出来,而且有一个黑客组织就更过分了,开发了一个可以自动生成Windows XP序列号的软件。这些序列号会被一些的盗版用户非法使用。更麻烦的事情是,微软公司可能禁止使用这些号码的系统来安装即将推出的Windows XP SP1。如果你的序列号也不幸被划归了黑名单,是不是有一种被人陷害的无辜感?
不做替罪的羔羊
首先要提醒你的是,我们下面要进行的步骤需要修改注册表,所以在进行之前一定要先备份你的注册表。这样一旦发生意外还可以有所补救,否则到时哭天天不应可就悔之晚矣!
你可依次点击“开始→运行”,输入regedit后回车,打开注册表编辑器,然后依次点击“注册表→导出注册表”,在为导出的注册表文件命名后按下保存按钮就可以完成注册表的备份了。
打开注册表编辑器后,展开[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\Windows NT\CurrentVersion\WPAEvents]分支(如图2),双击右侧窗格的OOBETimer将其中的“ca”删除(如图3),确定后退出注册表编辑器。下面依次点击“开始→运行”,输入“%systemroot%\system32\oobe\msoobe.exe /a”后回车。在打开的窗口中选择第二项,以电话方式激活。点击“下一步”,然后按下底部的“更改产品密钥”并输入其他的合法序列号后按下“更新”并重启电脑。为了验证一下新的序列号是否已经被系统接受,你可以再次点击“开始→运行”,输入“%systemroot%\system32\oobe\msoobe.exe /a”后回车查看。如果你的操作有误或者使用了非法的序列号,你的系统恐怕就无法启动了。那你可以在开机过程中按下F8键,然后选择“boot to the last known good configuration and retry with a valid key”。

图2

图3
如果你觉得这些方法太麻烦,也可以下载一个可以自动替你处理这些事情的小工具(
http://msbetas.net/files/xp_cd_key_changer.zip)。虽然这个工具在我的系统上运行得非常顺利,但是要提醒你,这么做无论如何是有一定风险的。万一它跟你的系统合不来,可不要来怪我哟!
转自《电脑爱好者》