完美激活 微软SLP2.0技术弱点及突破分析(圖)

MODBIN 6.2.01.01 BIOS编辑与升级模拟软件实战指南 MODBIN是一款专为BIOS级系统固件模拟与修改设计的专业工具,广泛应用于主板研发、超频调试、硬件兼容性测试及定制化固件开发等领域。该软件通过高度仿真的运行环境,允许用户在不直接操作物理硬件的前提下对BIOS数据进行读取、编辑、验证和预演,极大提升了固件开发的安全性与效率。其核心价值在于将原本高风险、高门槛的底层系统调整过程可视化、可控化。graph TDA[MODBIN软件] --> B[固件加载]B --> C[反编译解析FV/FFS]C --> D[参数可视化编辑] 阅读详情
完美激活 微软SLP2.0技术弱点及突破分析

关于OEM版本Vista,众所周知,这是惟一不需要激活的vista版本,原理如下:



今天我们要说的是在一般DIY的兼容机上如何可以实现Vista产品的免激活安装。

微软SLP 2.0技术弱点分析及突破验证的演示

作者:Binbin (binbin123.cn@gmail.com)

一.           SLP技术简介

微软从Windows XP 开始引入了SLP(System-Locked Preinstallation)技术, 用于OEM产品的辅助激活。SLP仅用于OEM产品,不会在零售版或批量授权产品中出现。Windows XP采用的是SLP 1.0版,其原理是检测BIOS中是否存在由OEM硬件厂家设置的特定SLP字串,如果有,则认为软件为OEM合法授权,成为激活状态;否则,则要求用户输入OEM硬件附带的COA号码,并通过网络或电话激活软件。由于原理简单,很快被熟悉BIOS原理及相关软件操作的人破解,随意在非OEM硬件-DIY的兼容机上实现了一样的效果。普遍流行的做法是使用DMI编辑软件,在BIOS的DMI数据区加入SLP字串,使Windows XP认为OEM授权合法,成为激活状态。

在微软新推出的Windows Vista操作系统中,升级了SLP技术为2.0版。SLP 2.0根据1.0的不足,加强了验证的技术,使其由简单的验证字串,变为验证BIOS中的SLP证书、标志以及硬件相关的特征。SLP 2.0在BIOS的ACPI中扩展出了一个新表-SLIC,用于储存SLP证书公钥(SLP PubKey)以及SLP授权标志(SLP Marker)。

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

1. 如果检测到SLP产品密钥(SLP与用的CD-KEY),SLP验证过程启动。 

2. Windows确认其包含(导入)的OEM证书是微软签名的。如果检测到OEM证书,则SLP验证继续进行。如果未检测到OEM证书,则SLP验证失败,要求迚行产品激活。 

3. OEM证书将同ACPI_SLIC BIOS表中的OEM公钥做比较。如果OEM证书和BIOS中的OEM公钥匹配,则SLP验证过程继续迚行。如果OEM证书和BIOS中的OEM公钥不匹配,则SLP验证失败,要求进行产品激活。 

4. ACPI_SLIC BIOS表中也包含SLP标志。通过OEM公钥验证SLP标志,如通过,SLP验证过程继续。否则,SLP验证失败,要求进行产品激活。 

5. SLP标志中包括OEMID字串和OEMTableID字串,与ACPI_RSDT和ACPI_XSDT的OEMID和OEMTableID比较,若其中之一与SLP标志中的字串完全相符,则SLP验证通过。否则,SLP验证失败,要求进行产品激活。 

二.           SLP技术弱点

大家看过了以上的介绍文字,应该对SLP 2.0验证有了初步的理解。对于DIY的兼容机而言,BIOS中是不存在ACPI_SLIC表的,故无法通过SLP 2.0验证。但是,SLP 2.0技术存在着弱点,我们可以使用从OEM硬件-各种品牌机中获取的信息,将SLP 2.0的各项验证的数据移植到DIY的兼容机中。

对于购买了预装Windows Vista OEM硬件的人,SLP产品密钥、OEM证书、SLP证书公钥和SLP标志都是已知的。SLP产品密钥和OEM证书通常存在不Windows Vista系统恢复盘中。SLP证书公钥和SLP标志存储OEM硬件的BIOS的ACPI_SLIC表中。

DIY的兼容机无法满足SLP 2.0验证主要是BIOS中缺少ACPI_SLIC表。其他的东西都可以通过分离OEM硬件中的相关数据来获得。所以,最重要的是为BIOS添加SLP 2.0支持-在无BIOS源码的情况下,添加一个包含SLP证书公钥和SLP标志的ACPI_SLIC表到BIOS中。要实现真正的添加,是有困难的,我目前使用的方法是替换现有的、功能较小的ACPI表。虽然可能造成一定的问题,但用于试验和技术演示,是完全足够的。

再者,SLP 2.0验证了SLP标志中的OEMID和OEMTableID字串不系统BIOS的ACPI_RSDT和ACPI_XSDT对应字串的一致性。所以,我们必须要修改兼容机BIOS中的ACPI_RDST和ACPI_XSDT的OEMID和OEMTableID,以便与SLP标志中的字串相符。尽管,这种强行修改OEMID和OEMTableID的做法,从技术角度讲,是丌规矩的做法,可能产生问题。但经过试验,这种修改可以在绝大多数BIOS上迚行,没有产生任何可察觉的问题。 

综上所述,SLP 2.0的技术弱点,就是兼容机可以通过某种手法在BIOS中添加包含特定数据的ACPI_SLIC表,并修改ACPI_RSDT戒ACPI_XSDT的OEMID及OEMTableID,来欺骗SLP 2.0验证,使其认为所使用的硬件为合法的OEM硬件,从而不要求进行产品激活。
三.           突破验证演示

Award BIOS是DIY兼容机中最常见的BIOS之一。下面,我来用实际的操作步骤,给大家演示一下在无源码的情况下为Award BIOS 6.0添加SLP 2.0支持的全过程,使之通过SLP 2.0验证。

我们用到的工具都是从网上搜集来的,名称如下: 

1. CBROM 2.19:用户添加、替换Award BIOS模块的工具。我们用它来修改、替换ACPI数据区模块。 

2. MODBIN6 2.01.01:这个工具用于修改BIOS的一些字串和选项。我们利用该软件运行过程中的临时文件,修改Award BIOS的核心BIOS模块。因为CBROM是无法修改核心BIOS模块的。 

3. WinHex:著名的Hex Editor。我们用它来修改ACPI数据区的内容。 

4. Windows Vista:被演示的主要对象。我们的所有修改操作,都是在Windows Vista下迚行的。Windows XP下也可以做。不过我们在Windows 2000下运行MODBIN6,出现了一些问题。 

除此之外,我们还需要从OEM硬件中提取相关的数据,提取过程随OEM品牌不同而不同,故不详述,有兴趣的,可以查找相关的文章。准备齐全之后,我们可以下手修改了。 

1. 先选中一款要修改主板的BIOS,将其不MODBIN6、CBROM放置在同一文件夹下。如图1。 



图1:工作目录概况

2. MODBIN6只认BIN扩展名的BIOS,如果你的BIOS文件丌是BIN扩展名,要先改名。 

3. 双击MODBIN6.EXE,来打开MODBIN6的主界面,选择我们要修改的BIOS文件,按ENTER键确认。如图2。 



图2:用MODBIN6选中要操作的BIOS

4. 这时,不要关闭MODBIN6窗口,切换回先前的文件夹窗口,MODBIN6生成了一些临时文件。其中ORIGINAL.BIN就是我们要修改的文件。如图3。 



图3:在MODBIN6临时文件中找修改目标

5. 用WinHex打开该文件。并搜索“RSDT”(无引号)字串。如图4。 



图4:WinHex查找字串



图5:找到的字串

6. 按OK键找到如图5的结果,这是BIOS中的ACPI表的索引,每4个字节一个表名,只有表名在这个索引中的表,才会被BIOS识别,并复制到相关的内存区域中。我们必须尽量替换掉用处丌大的表,来放置SLIC表。这时有四种可能: 

a) 找到的字串比较长,形如“RSDTFACPDSDTAPICSSDTSRATFACS”。这种情况下,选择的余地比较大。我试验的结果是,SRAT可以安全的替换,因为这个表根本没有在ACPI数据区用到。这样的替换丌会损失任何ACPI相关的功能。 

b) 找到的字串比较短,形如“RSDTFACPDSDTAPICMCFGFACS”。这种情况下,选择余地较小。必须替换ACPI用到的表。我的经验是,MCFG可以被替换,替换之后,没有明显的问题产生。如果没有MCFG,但是有APIC,也可以替换,不过可能会影响到已安装操作系统的运行,需要立即重新安装操作系统,才能正常工作。这点和打开、关闭CMOS中的APIC功能时出现的现象类似。 

c) 找到更少的字串,形如“RSDTFACPDSDTFACS”。这种情况下,无法进行修改。这几个表都是ACPI的关键表,替换任何一个,都会导致Windows丌能正常运行。 

d) 没有找到字串。这种情况下,也无法迚行修改。往往是新的BIOS有这种问题。应该是BIOS查找ACPI表的方式有变化。比如Gigabyte的一些新主板。不过可以尝试一下这些主板的旧版BIOS,例如我的Gigabyte M55Plus-S3G Rev1.x,最新的F9版BIOS丌可以改,而旧版的F5却可以,修改之后,降级BIOS,也获得了成功。 

7. 用“SLIC”替换选中的表名。并单击工具栏上的保存图标,来保存文件。如图6。 



图6:修改选中的表名

8. 切换到MODBIN6窗口,在菜单上选择Save来保存BIOS文件。如图7。 



图7:在MODBIN6中保存BIOS

9. 接下来,我们要使用CBROM219来在ACPI的数据区添加SLIC表的内容,并修改RSDT表的OEMID和OEMTableID。 

10. 迚入命令行下,使用命令分离BIOS的ACPI数据区:cbrom219 8hmx6323.bin /acpitbl extract。在提示输入文件名时,直接按ENTER键,来使用默认的文件名。如图8。 



图8:提取ACPI数据区

11. 用WinHex打开分离出来的acpitbl.bin。 

12. 修改RSDT表的OEMID和OEMTableID为SLP标志的对应字串。OEMID固定为6字节,OEMTableID固定为8字节。丌足的字符需要用空格(0x20)补齐。修改后保存文件。如图9。 



图9:修改RSDT的OEMID和OEMTableID

13. 追加SLIC表数据到ACPI数据区尾部。在命令行下运行命令:copy acpitbl.bin /b + acpislic.bin /b acpitbl.bin /b。acpislic.bin为SLIC表数据文件,其中包含SLP证书公钥和SLP标志。如提示覆盖,请确认。 

14. 将修改后的ACPI数据区加入到BIOS中。在命令行下运行命令:cbrom219 8hmx6323.bin /acpitbl acpitbl.bin。如图10。 



图10:添加修改过的ACPI数据区到BIOS中

15. BIOS文件修改完成。刷新到主板中。安装Windows Vista,戒者用现有的Windows Vista来检测结果。

四.           检测修改结果

刷新完BIOS之后,我们必须通过相应的测试软件,来检测修改的正确性。我们可以使用Everest的最新版本-EVEREST Ultimate v3.50.888 Beta来查看结果。

首先,启动Everest,展开左侧“主板”节点,单击其中的“ACPI”项。右侧屏幕会显示出ACPI的相关信息。查看其中是否有SLIC表,如图11。表的长度应为374字节。



图11:查看SLIC表的内容

然后,我们要查看RSDT表,看其中的OEMID和OEMTableID是否和SLP标志中的字串一样,是否按我们的修改,成为了正确的结果,如图12。



图12:查看RSDT表的内容

满足了这两项-有SLIC表、RSDT表修改正确-一般就可以认为是修改成功了。但最后是否能正常突破SLP 2.0,还要实际去装一个Windows Vista看看。而丏需要使用SLP产品密钥(CD-KEY)和导入对应BIOS的OEM证书。安装系统和本文的主题关系丌大,故丌详述。系统安装成功之后,应该不要求产品激活。打开“系统”属性页面,应该看到如图13的样子。



图13:Windows已激活
 

五. 写在文章最后的话

感谢我的合作人、优秀的BIOS工程师-aeno。是他从始至终协助我的技术研究,分析并提供了相关技术信息。

技术是没有正邪之分的,关键看使用的人出于什么目的使用该技术。我们分析SLP 2.0技术的弱点及公开突破验证演示,完全出于技术研讨的目的。我们认为突破验证的演示仅适用不实验室环境。我本人和合作人aeno都在使用预装Windows Vista的品牌机,从而有机会研究这项技术。Windows Vista是一个优秀的操作系统,我也是热爱微软产品的技术人员。研究微软软件技术的人士众多,如本文有任何纰漏,还请交流、指正
MODBIN6 修改bios 收集于网上,版权归原所有人所有,喜欢的朋友下吧 立即下载

相关推荐

MODBIN6 2.04.02

MODBIN6 2.04.02 版 Modbin是Award公司出品的一款修改BIOS默认参数的软件。 AWARDBIOS修改工具!现在AWARD 6.0 PG BIOS 修改!最新

Windows OEM SLP、NSLP、COA和DM许可证产品密钥的区别详解

现在你知道今天有哪些类型的不同的 OEM 许可证,你现在可以对你想购买的许可证做出明智的决定。即使是 OEM 许可证,各版本之间也没有太多的区别。然而,如果你想为你的公司购买新的笔记本电脑,你应该购买带有 OEM:SLP 许可的笔记本电脑,这样硬件就不会被替换。

winkexin的博客 9200

MODBIN6.rar

MODBIN也是Award公司出品的一款功能强大的BIOS修改工具,它可以修改BIOS中的默认参数或菜单选项

全面揭秘Windows激活原理

本文会尽量客观和全面的带大家一一了解现在 Windows 激活方面的信息。

【Rainbow Network Technology co., LTD】 1万+

手工修改BIOS,让板载显卡与独立显卡共存

        广大读者,您们好,由于近段尘俗琐事缠身,没能动手给大家出一个手工修改BIOS的原创作品,个人觉得我转载的这个也很不错,所以就拿来介绍给大家,希望能对大家有所帮助! 本文由dear 原创,深表感谢!集成显卡主板插上显卡后自动屏蔽集显的解决方法(包括BIOS无可调选项) 现在不少拖机都是集成显卡加外接显卡,大部分主板都自动屏蔽集成显卡,需到BIOS里面打开对应选项: 方法1:Advan...

pywilson的博客 7962

服务器主板电池的电压不稳定怎么办,轻松解决CMOS掉电烦恼这绝招

机房中的电脑都没有安装软驱,按Del键进入CMOS,将软驱设置为“None”,保存退出后不再出现错误提示。但关机时间一长,再开机时又会出现相同的错误提示,而且进入Windows 98以后,系统时钟总是回到2001年,必须重新设置。这种症状一般是由于主板CMOS掉电引起的,因为无法保存修改后的BIOS信息,每次开机后BIOS就会恢复到默认设置状态,而在开机自检过程中无法检测到软驱,所以才会出现错误提...

weixin_33817140的博客 2098

acpi_table_header的oem_id 可以区分不同的硬件

kernel中的acpi table header的结构体定义如下: struct acpi_table_header { char signature[ACPI_NAME_SIZE]; /* ASCII table signature */ u32 length; /* Length of table in bytes, including this header */ u8 revis

jason的笔记 1259

常见电脑疑难问答

 ★系            问:wsli您好,我的计算机最近遇到了一些问题,比如蓝屏、缺少DLL文件等。在请教高手后,他们让我释放Windows 98系统文件来解决这个问题,可是我应该如何释放Windows 98系统文件?答:释放系统文件是一种比较有效的方法,很多朋友在使用系统时遇到的问题都需要使用Windows 98安装盘释放CAB文件的办法来解决。在“资源管理器”或“我的电脑”中双击包含有需

aikce2005的专栏 7090

微软SLP2.0技术弱点突破分析

微软Windows XP 开始引入了SLP(System-Locked Preinstallation)技术, 用于OEM产品的辅助激活……  一. SLP技术简介  微软Windows XP 开始引入了SLP(System-Locked Preinstallation)技术, 用于OEM产品的辅助激活SLP仅用于OEM产品,不会在零售版或批量授权产品中出现。Windows

1502

修改BIOS文件的CBROM1.95,桌面版.鼠标操作

修改BIOS文件的CBROM1.95,桌面版.鼠标操作 形介面,方便操作,简明易懂.

简单破解华硕UEFI BIOS加入SLP2.1教程

简单破解华硕UEFI BIOS加入SLP2.1教程

MODBIN模拟软件

MODBIN模拟软件是一款很好的XP Bios编辑升级软件。比CMOSTEST软件更实用

Windows 7 33in1 V1.4的OEM自动识别

详情见无约最新力作Windows 7 33in1 V1.4 |http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1379558系统安装程序进入OOBE阶段时,进行OEMSLIC的识别工作。主要识别什么?不同品牌的SLIC的代码是不一样的。看看一些例子。戴尔SLIC2.2的OEM ID是DELL;OEM Table ID是PE_SC3;如...

thanklife的专栏 3903

微软SLP 2.0技术弱点分析突破验证的演示(Vista OEM版修改bios激活)

 作者:Binbin (binbin123.cn@gmail.com) 一.SLP技术简介 微软Windows XP 开始引入了SLP(System-Locked Preinstallation)技术, 用于OEM产品的辅助激活SLP仅用于OEM产品,丌会在零售版戒批量授权产品中出现。Windows XP采用的是SLP 1.0版,其原理是检测BIOS中是否存在由OEM硬件厂家设置的特定SLP

y97523的专栏 3776

联想机器硬刷MARKER的方法及slic2.0、slic2.1大全下载(ZT)

如果大家无法确定自己的slic OEM Table ID,还有一种最简 单的办法:那就是开机时根据自己的机器按功能键(我的机器是F2功能键)进入BIOS的CMOS设置中的第一选项(Main)查看主机编号 (LENOVO  S/N) OEM Table ID ,我的机器是以CB打头的,我的机器slic是 LENOVOCB-01.BIN  。硬刷MARKER slic2.1表无风险,请大家放心使用!而...

kangri37的博客 7732

Pinczakko的AwardBIOS逆向工程指导

Pinczakko的AwardBIOS逆向工程指导作 者: beiyu时 间: 2007-04-05,10:15链 接: http://bbs.pediy.com/showthread.php?threadid=42166Pinczakko的AwardBIOS逆向工程指导作者:Pinczakko翻译:beiyuhttp://beiyu.bokee.comEmail:beiyuly@gmail.co...

互联网 1万+

硬刷BIOS,主板加入OEM SLIC信息,永久完美激活WIN7

前几天刚刚出现的Windows Toolkit 工具用来激活Win7,这种方法不是很完美,还是有时间期限的。不过我今天在远景看到OEM激活法。把SLIC信息硬刷到主板BIOS里,将你的电脑制造成OME品牌机。这样再倒入OEM证书+OEM CDKEY。你的Windows 7就是正版了。在远景看了起码几十个帖子,逛遍了BIOS之家,终于让我把这教程琢磨出来了。首先,介绍一下为什...

心语家园 - www.xinyucn.cc 1万+

知识库的构建 [ 3 ]

先按主题或段落初步划分,再对超长块递归细分,直至满足大小限制。递归分块融合了结构化与非结构化处理逻辑,与固定大小的分块不同,这种方法保持了语言的自然流畅性并保留了完整的内容语义。

Small_entreprene的博客 492
上一篇: 如何使用WinDBG跟踪调试ASL/ACPI?
下一篇: 调试Win32 Service
iiprogram
博客等级 码龄25年 1066粉丝 1515原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值