SLIC

 

 SLIC

微软公司用SLIC来控制用户对OEM版本的非法使用。OEMOriginal Equipment Manufacture)的基本含义是定牌生产合作,俗称代工。微软为特定的合作伙伴发放操作系统的OEM版本,以满足合作双赢的需求。这些OEM版本的操作系统随机器预安装,并采用批量许可的授权模式。这样的批量许可难以有效识别合法用户和非法用户,可能被滥用而导致版权问题。为了控制这个问题,微软规定在安装每一个操作系统时将其激活。OEM可在安装过程 中根据OEM和批量许可的媒体安装映像。OEM销售的大部分系统包括由制造商预激活的Windows Vista标准版。

一般认为主板是硬件升级中最不可能更换的部件,甚至有观点认为,主板的更换约等于整台机器的更换。要有效识别一台机器是否为OEM合法用户,可以在每台预装操作系统的机器主板上,在BIOS里写入特定的信息,来标示这是一台OEM合法用户的机器。这样的信息就是SLIC。不同的OEM厂商的SLIC不同,所以他们的OEM操作系统不能混用。在没有预装系统的机器,即便是品牌机,也不会含有SLIC信息。这样,OEM版的操作系统就可以限定在OEM机器上使用。

SLIC一般是写在SLDTSoftware Licensing Description Table,软件许可描述表)中的,SLDT374字节。而SLDT写在ACPIAdvanced Configuration and Power Management Interface,高级配置和电源管理接口)中。

Windows XP OEM版激活,使用的是微软SLP 1.0SLPSoftware Licensing and Protection,软件许可和保护)服务是一项软件激活服务,使独立软件开发商为他们的用户采取灵活的软件许可条款。1.0版本的激活技术并未使用数字签名技术,而是一段明文标识,比较容易被破解。

SLP 2.0BIOSACPI中扩展出了一个新表-SLIC,用于储存SLP证书公钥(SLP PubKey)以及SLP授权标志(SLP Marker)。

SLP 2.0技术的验证具体过程如下:

 1、当Vista安装的时候,零售版本用户需要输入光盘盒上的序列号(CD-KEY)。对于随机购买了OEM版本Vista的用户,可以在主机上找到一个相应版本的标签,作为购买Vista OEM版的凭证。标签上面有一个带有象征意义的序列号,因为OEM版本的用户并不需要输入序列号。系统根据序列号识别Vista的不同版本,如基本家庭版、高级家庭版、商业版、旗舰版等。安装完毕后,序列号会被转换为四组字母或数字,即在系统属性里看到的产品ID”。其中第二组是“OEM”的,即为OEM版本的序列号(CD-KEY)。从这里开始,产品ID代替了CD-KEY。同时,安装程序为OEM版本的安装生成一个OEM证书。

2、当每次系统启动时,BIOS里的信息就会被加载到内存中。

3、当登录Vista系统之后,系统调用SLP服务,验证操作系统的许可权,尤其是激活状态。开始根据产品ID来识别系统的授权状态。如果没有检测到产品ID或者没有检测到合法的零售版产品ID,则视为未激活。如果检测到合法的零售版产品ID,则视为成功激活。如果检测到OEM版的产品ID,则继续验证。

4、如果检测到OEM版产品ID,验证过程启动,并检查已安装的OEM证书是否正确。主要是用先前从BIOS加载到内存里的SLIC的公钥验证产品证书的数字签名。如果验证失败,则视为未激活。

5、验证ACPISLICRSDTRoot System Description Table,根系统描述表)的OEM ID字段比较,以及用ACPISLIC标志和XSDTExtended System Description Table,扩展系统描述表)中的OEM IDOEM Table ID字段比较,如果不一致,则视为未激活。

6、经过以上重重关卡之后,方视为正确的OEM授权,否则视为未激活并按照相关流程处理,例如要求激活。

破解SLIC一般有硬件破解和软件破解两种思路,并已经有相应的实现。

硬件修改就是所谓BIOS”,将OEM机器里的BIOS信息提取出来,并复制到其它机器上。这样做的优点是,对操作系统而言,几乎无异于合法OEM机器。但缺点也是技术难度高、风险大,如果不是老手,或刷BIOS时出现停电或读写故障,系统将无法正常启动,通常需要返厂处理。

软件修改就是利用操作系统只读取从BIOS载入内存的副本而不是BIOS本身这一弱点,在启动Vista之前,修改内存上的副本,使之无异于OEM机器。这样做的优点是,风险小。缺点是内存的信息和BIOS中的信息不同,当计算机休眠后,BIOS信息会被重新写入内存,原有的破解会被覆盖。

 

Biosphoenix legacy)中是怎么处理的?

SLP1.0

SLP1.0 is for Windows XP,只要在BIOS F000段中加相应的字符串就行.

具体的做法是:

1.       ROM的固定位置加入相应的OEMSTRING。以方便给FAE TOOL直接添加该字符串。

2.       TP DAh时,将该字符串copybiossegment(是在F000 segment)中任何位置。

3.       然后xp在启动的时候会自己去扫描?

SLP2.0

SLP2.0 is for Vista

BIOS 需要在ACPI中添加SLIC TABLE, SLIC由表头+MARKER.BIN+PubKey.bin组成.

具体的做法是:

1.       At TP B7hPost entry point to setup acpi table in Shadow RAM and in extended memory

2.       Set up ACPI Reclaim, what’s ACPI reclaim area?

3.       REGISTER_ACPI_FN RECLAIM_TABLE, acpiBuildSLICTable, FORCE_EXTERN. 这里要注意在bcp.asmINSTALL_ACPI项要添加SLP20这个选项。

4.       主体部分就在函数acpiBuildSLICTable中。其中为方便FAE tool,先将MAKER.BIN+PUBKEY.BIN放到ROM的固定位置,然后再从中读取放到SLIC中。

5.       XSDTOEM ID, OEM Table ID设为需要的值。可以直接读取MAKER.BIN的开头位置填入XSDT的开头项。及RSDTOEM ID项。

SLP2.1

基本上跟SLP2.0一致。主要用在Windows 7中。而且向后兼容,也能激活vista

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值