分享

引用 SLIC表的构成详解

 刀手69 2017-11-08

 

引用

huangjishiSLIC表的构成详解

SLIC表的构成详解

 

SLIC概述;

SLIC全称是Software Licensing Internal Code,即软件许可内部码。

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

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

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

构成;

1,SLIC表的头部(0~23,24h):

0~3----表名:SLIC,用“everest”检测时显示文本:SLIC;

4~7----表长:76010000,用“everest”检测时显示10进制值:374;

8----- SLIC版本,目前全是01;

9----- SLIC表的校验,这个位置修正整个SLIC表校验和=0;

A~F---   SLIC表的 OEM ID ,用“everest”检测时显示文本;

10~17-- SLIC表的 OEM Table ID ,用“everest”检测时显示文本;

18~1B-- SLIC表的 OEM Revision   ,用“everest”检测时显示16进制值,

                比如这里如果是08080820,检测出来就是20080808;

1C~1F-- SLIC表的 Creator ID ,用“everest”检测时显示文本;

20~23-- SLIC表的 Creator Revision ,用“everest”检测时显示16进制值,

                显示方式跟 OEM Revision   相似。

2,SLIC表的SLP PubKey(24~BF,9Ch):

同一品牌的SLIC表的PubKey绝大多数是一样的,有个别品牌的不一样!(貌似东芝的SLIC有这情况)

3,SLIC表的SLP Marker (C0~175,B6h):

不同的SLIC表,SLPMarker都不一样,也是区别SLIC表异同的唯一地方!

位于CC~D9,Eh 字节的内容,必须跟SLIC表的OEM ID 、OEM Table ID 一样!

不同类型的BIOS,不同的厂家会根据自己的情况,或者喜好修改OEM Revision 、Creator ID 、Creator Revision :

比如AMIBIOS,OEM Revision 一般是时间(年、月、日),Creator ID 都是MSFT,Creator Revision 大多是00000097;

AWARDBIOS的也有一定规律,OEM Revision 一般是312E3042(1.0B),Creator ID 一般是AWRD或者NVDA,技嘉的这里是GBTU,Creator Revision 就是什么都有!

对于phoenix BIOS,就更混乱了,由于大品牌使用phoenix BIOS比较多,OEM Revision 、Creator Revision 没什么规律,Creator ID 也是多种多样,大多数是204C5450(   LTP),ASL (DELL),FUJ (Fujitsu),HPQ (HP)等等!

我们也可以根据自己的喜好,用WINHEX修改OEM Revision   、Creator ID 、Creator Revision ,

修改完先把SLIC的位于9处(校验)改为00,然后“全选-工具-计算哈希-8位校验和”,用16进制计算器把这个值取负数,把得出的最后两位写在SLIC表的9处,在计算一下8位校验和是否=0!图中红线就是修正SLIC表的地方!

SLIC表的构成详解 - huangjishi - huangjishi 的博客

运作模式;

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

  Windows Vista,取消了其他大客户版本,仅保留OEM版激活。其并使用的是微软SLP 2.0,公钥取代了明文,给破解造成一定的困难。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、验证ACPI里SLIC与RSDT(Root System Description Table,根系统描述表)的OEM ID字段比较,以及用ACPI里SLIC标志和XSDT(Extended System Description Table,扩展系统描述表)中的OEM ID和OEM Table ID字段比较,如果不一致,则视为未激活。

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多