|
本人正在研究HPA硬盘超级炸弹,
美国凤凰科技公司"核心管理环境"战略(cME)是一套基于行业标准的电脑/数字信息设备启动技术和相关应用,它驻留在电脑或数字信息设备的系统固件以及硬盘的某一特定受保护区域内,它独立于操作系统之外,不受用户操作的控制和影响,从而保持永远可用、永远安全。
在电脑和服务器环境中,凤凰科技"核心管理环境"(cME)帮助在系统硬盘内创建并管理一个安全的"主机保护区域",并将其认证的应用软件FirstWareTM 系列产品驻留在该区域。当系统运行异常时,这些认证的应用将对系统进行自动诊断和恢复。迄今为止,凤凰科技的cME可为电脑和数字信息设备提供最安全的"主机保护区域",同时首次允许第三方的系统开发商将其应用程序写入到硬盘中的只读区域内。
HPA分区系统恢复方案
HPA分区系统恢复方案,这种方案是基于一个“隐藏的分区”来是实现的,这就是所谓的hpa,全称是Hidden Protected Area,这是一个十分特殊的区域,注意,这里我没有用“分区”这个词,而是改用“区域”来描述它。因为它实际上并不占据某一个分区,也就是说,在操作系统中看,或者你用Fdisk来查看,是看不到的(与安全级别也有关系,后面会提到)。hpa区域的容量大约为硬盘空间的10%,例如我的40GB的硬盘,只能看到35G多一些,其余空间根本无法看到,使用PQ Magic8也看不到。hpa共计包含4个部分:
hpa Header
Access IBM Predesktop Area
Additional Bootable Functions Areas
Data Areas
HPA是ATA的标准,ATA-4就包含了HPA,通俗的理解就是设置读取的硬盘最大的扇区号,从而把高端的内容隐藏起来,这个最大的扇区号能够写在硬盘的某个地方,因此即使你把这个硬盘挂到其它机器上,正常情况下你也只能看不到隐藏的内容,fdisk,pqmaigc之类的工具也把这个硬盘当做一个稍小容量的硬盘。其实现在hpa已经是用ATA-5的标准了,这个标准需要在HDD的 Firmware支持的
phoenix(生产BIOS的公司)开发的Core Managed Environment (cME),联想主办上的recovery easy II,IBM的系统恢复都是利用HPA的例子。
:硬盘隐藏部分事实上是个正常的分区(比如FAT32、NTFS),这样就不需要开发大量的针对隐藏空间的应用程序。
有两个把办法分析HPA:
1、对那几个工具软件做逆向工程
2、分析联想QDI主板的BIOS(可能比IBM笔记本的BIOS好分析)
如果能把这种技术通用化(在普通的上实现),那真实节省管理员很多时间和精力。
1、HPA在启动过程中通过特定的键来中断启动过程并激活进行操作系统恢复。
2、HPA分区在Windows系统中不被识别。
3、可以在HPA分区中对用户数据进行备份。
4、HPA技术可以提供用户级安全性保护,以全面保护HPA分区不被未授权用户访问、修改及删除。根据白皮书上提供的安全性对应表来看,在最高等级的安全性下,无法访问、看到、删除HPA分区,无法克隆,而最低的安全性设置下,可以在操作系统中看到该分区,可删除、可克隆、可更新数据。
这项技术是采用标准技术实现的(ANSI+NCITS+346-2001)。
3、如何对HPA分区进行备份/恢复:
如何备份HPA分区
在Dos状态下运行如下命令:
FWBACKUP size=<span file size must be between 25MB and 640MB> file=<Path and name of file set>
典型语法:
FWBACKUP size=640 file=d:\IMGSET
备份工具会将HPA分区中的内容分割为640MB大小的若干个文件:imgset.001 ... imgset.nnn
如何恢复HPA分区?
首先,确认目标硬盘是一个空的,没有任何数据及分区的硬盘。
Dos状态下运行:
FWRESTOR file=<name of span file set>
典型语法:
FWRESTOR file=D:\IMGSET
该工具会自动恢复imgset.001 ... imgset.nnn的所有备份文件集。
1、是通过另外制作的一张DOS启动盘启动系统的。
2、当然D盘是指光驱/第二块硬盘或者网络驱动器咯。至于如何制定目标盘,恢复工具应该会自动寻找符合条件的硬盘。
先讲FW工具集中的fwdir命令。
这个DOS命令,和DOS的dir相类似,即查看hpa里面的列表,包括相应的ID,名字,第一扇区,容量大小等相关信息。如果已经有hpa了,在DOS下面运行fwdir,会看到如下类似的信息:
FWDIR version 1.00 - Copyright (c) 2002 Phoenix Technologies Ltd.
Detecting drives...
BEER Structure on Drive 2
Signature: 0xBEEF (Committed)
Capabilities: 0x0029
Native Max Sect: 117210239
Current Max Sect: 117210239
First hpa Sector: 112017857
Last Part sector: 112008960
Service Areas: 8
# ID Name 1st Sector Megabytes Sec Icon Flag
-- ---- ------------------------------ ---------- --------- --- ---- ----
0 000h FirstWare Reserved Area 117005431 100.000 0 00h 03h
1 100h SIGHT 117002548 1.408 3 FCh 21h
2 8104h Restore from backup 116999665 1.408 0 22h 21h
3 8105h Rec Boot 116983660 7.815 0 21h 21h
4 8800h BIOSWORKAREA 116979564 2.000 0 21h 06h
5 8888h Rec Data 112047980 2408.000 0 21h 06h
6 8101h Create Diagnostic Diskettes 112032920 7.354 0 24h 21h
7 8100h Run Diagnostics 112017857 7.355 0 23h 21h
可以看到hpa的结构,左边的ID部分相当重要,运行所有命令都几乎要涉及这个参数。第一部分是保留区,由于无法查看里面的数据(如何查看,稍后的fwmount命令中讲述),站长无法确定这个保留区的真正作用,这个区的大小正好是100MB;第二部分是叫sight,里面只有两个文件,即minidos.sys和sight.exe,这个程序只有200多K,是一个标准的DOS程序,可以在DOS下面直接运行,即会看到启动时候按AccessIBM那样的界面,这部分只有一张软盘大小,运行chkdsk查看它的大小和一张标准软盘是一样的;第三部分也是一张软盘大小,叫Restore from backup,即从备份中恢复的时候启动;第四部分是Rec boot,即纪录引导区,大小是8MB,在AccessIBM中运行Recover to factory contents时从这部分引导;第五部分是BIOSWORKAREA,用fwmount无法打开查看,站长只能从其它区域的情况和它的名字来推测它是相当于电脑的BIOS这样一个区域;第六部分是Rec Data,就是四张恢复光盘的数据了,有2.4G大;第七和第八部分就分别是制作检测工具盘和运行检测工具。
fwdir命令和其它相关命令的使用参数通常会涉及一个drv=0这样的,缺省时是使用drv=0,这个设备是硬盘插槽里面的硬盘,drv=1通常使用不了,它是指第一通道的从设备(主设备通常就是硬盘插槽的硬盘了);drv=2则是第二通道的主设备(通常就是光驱位置的设备),drv=3则是第二通道的从设备了。如果使用了UltraBay Slim硬盘托架,那么这个就是drv=2了。运行格式是:
fwdir drv=2
这样。
删除hpa的工具:fwdelete
使用很简单,如果要删除硬盘插槽里面的硬盘的hpa,输入:
fwdelete drv=0 all
然后按Y确认,即可删除。
如果是要删除UltraBay Slim硬盘托架里面的硬盘的hpa,输入:
fwdelete drv=2 all
然后按Y确认,即可删除。
执行此命令的时候,BIOS中的IBM PreDesktop Area设置不用改为Disable。但删除hpa后如果要利用这部分的硬盘空间(2.5G左右),还得改为Disable才行。预先设置为Disable再执行fwdelete也可以的。
这个命令可以先用fwdir查看hpa结构之后,再用fwdelete逐个删除,在后面加上id=xxx这样就可以了。
fwdelete能够以最快捷、最直接的方式来删除hpa。对于一些网友在使用或研究hpa过程中非常有用。
站长在用东芝MK5024GAY硬盘研究hpa的时候,曾发生过hpa损坏,改为Disable后用DM、PQ或Windows来删除那块区域(hpa)都没有效果,表面上是删掉了,但一改回Normal,启动系统时马上就报1850错,或者是检验错,后来用XP安装光盘来删,也不行,象幽灵似的缠着不放。到后来发觉fwdelete命令时,一下子就干掉了,走了这么多弯路。
hpa的备份与恢复:fwbackup和fwrestor
fwbackup是备份hpa的工具,重要参数有file,size,drv,其中file是指备份出来的文件,比如file=t40hpa,那么它会备份出来t40hpa.001,002,003这样的文件;size参数是指备份出来的文件的大小,比如size=650,那么备份出来的文件自动按每个650MB一个分割,drv参数和之前介绍的相同。
FWBACKUP Version 1.00
(C) Copyright 2002 Phoenix Technologies Ltd. All Rights Reserved.
USAGE: FWBACKUP file=<filename> size=<spansize> [drv=drive_no] [ver] [/?]
Optional parameters:
drv=n Specify drive to use. 0=pm,1=ps,2=sm,3=ss
ver Display version and build information.
/? Show this help message.
Note: If is specified the program will run in unattended mode
fwbackup可以在本机硬盘DOS下直接运行,通常可以用U盘或软盘或光盘启动到DOS下面,在硬盘上有FAT32格式的分区下面来操作,就可以备份。
和fwbackup对应,fwrestor就是恢复hpa的工具了。fwrestor参数相对简单一些,不用size来指定大小,它会自动寻找当前目录下面file=指定的文件名,然后恢复。运行fwrestor命令时,要求恢复的硬盘必须是没有任何分区的,否则恢复完成之后,会出错。
FWRESTOR Version 1.00
(C) Copyright 2002 Phoenix Technologies Ltd. All Rights Reserved.
USAGE: FWRESTOR file=<filename> [drv=drive_no] [verify] [ver] [/?]
Optional parameters:
drv=n Specify drive to use. 0=pm,1=ps,2=sm,3=ss
verify Compare data written to disk with data read from file
ver Display version and build information.
/? Show this help message.
运行fwbackup和fwrestor命令时,BIOS中IBM PreDesktop Area可以设置为Disable或Normal。但恢复完之后,必须要用恢复好的硬盘来放在硬盘插槽里面,并且在BIOS中IBM PreDesktop Area设置为Normal或Secure,才能按AccessIBM来恢复系统;放在UltraBay Slim插槽里面的话,即使用这块硬盘来启动,按AccessIBM进入只有一个Enter Setup Utilies一个选项,无法恢复系统。
这里我针对这几个部分做些解释:
1.[$nbsp][$nbsp]Header,这是最基本的一个部分,相当于分区表的作用。
2.[$nbsp][$nbsp]Predesktop Area,这里存放着一些程序代码,当我们在开机时按下蓝色的Access IBM键时,会看到一个类似WINDOWS风格的菜单(如下图),而且可以使用鼠标。这些程序实际上就是存储在这个区域的。
3.[$nbsp][$nbsp]Additional Bootable Areas,值得一题的是,IBM声称在今后的版本中将会允许用户自己创建一个附加的引导区映像,当然,映像的数据要存储在后面的Data Areas。
4.[$nbsp][$nbsp]Data Areas,如前所述,这个区域能为Bootable Areas提供额外的存储空间。而且,使用RRPC软件做的映像数据,也是存储在这里的。RRPC软件的备份,可以在完全无法进入操作系统时,来恢复我们的系统,原因正是在于此!
hpa区域的安全级别是可以改变的,不同的安全级别下,允许的操作是不同的。请看下面这个简表:
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Locked Hidden Bootable CloningEnable
[$nbsp][$nbsp][$nbsp]High[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]N
Normal[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]N[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y
Disable[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]N[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]N[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]N[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]Y
从这里我们可以看出,如果你想做一个Image,那么首先要设定安全级别不能是High,然后还要注意在完成操作后要恢复安全级别。当然,系统的默认值为Normal,也就是说,新拿到的ThinkPad应该是可以用第三方软件(例如Symantec Ghost)来制作Image的。但是如果你想让系统更安全些,也可以考虑自己把系统安全级别设置为High。
以我自己的T40 72H为例,开机时按下Access IBM蓝色按键,进入菜单,选择IBM setup utility,然后出现一个新的界面,在security里面可以更改系统的安全级别,有三个选项:secure/normal/disable,默认是normal,如果你想把级别设为disable,会弹出一个对话框,提示你:“如果这个区域被操作系统读取过,将无法再恢复到secure或者normal的级别。”
IBM提供了一个DOS下的小程序,后面有链接,不过这个程序好像没什么用,看帮助文档里说,可以修改密码,可以隐藏/现实Predesktop Menu里面的一部分图标(这有什么用?),还可以删除hpa区域。不过由于需要把这个程序copy到一张可以启动的磁盘上,所以我没能运行这个程序,72H没有软驱。
|
|