|
Windows光盘系统也称为Windows PE(PreInstallation Environment),是从Windows系统提取的、最小化的、存储于光盘的操作系统环境,被广泛应用于硬件及操作系统维护,如深山红叶系列、老毛桃系列等。此系统现阶段仍备受关注,系统说明及资源非常多,但还没有比较详细的系统分析,下面就从5个方面作一详解。
1、启动引导
光盘启动需要安装引导程序,通常的引导程序有NTLDR、GRUB等,引导程序通常存放于光盘引导扇区,可使用UltraISO提取启动引导程序代码。NTLDR用于直接引导启动Windows PE,使用的引导程序(BootLoader)通常为SETUPLDR.BIN和NTDETECT.COM,通常存在放于光盘WXPE目录下。GRUB多用于多启动引导,可同时引导多个光盘系统启动,如DOS、Windows PE、Linux等,可使用工具造成启动菜单,如EZB的EasyBoot、时空淘气包、BCDW、Grub4dos、Diskemu等,在此不作详细分析。
2、系统加载
光盘系统加载主要由BootLoader完成,NTLDR的BootLoader程序是SETUPLDR.BIN,可通过修改此程序目标代码来改变光盘启动时的提示信息,包括虚拟镜像加载信息、等待信息。SETUPLDR.BIN由两部分组成,一部分引导代码,另一部分为二进制驱动文件,可通过查找“MZ”标志提取二进制进行分析解读。
SETUPLDR.BIN主要用于加载操作系统镜像于虚拟磁盘运行,虚拟硬盘文件设置通过WINNT.XPE来实现,使用文本方式可获得加载镜像的位置,此镜像即通常所说的光盘系统核心,这里为方便起见命名为WINPE.IS_。其中,可用“BOOTFONT”关键字定位中文启动字体文件名,通常为BOOTFONT.BIN。
WINPE.IS_文件以LZX算法压缩的CAB文件,后缀名被修改,使用WinRAR和7-Zip均可查看内容,其为内容为ISO格式压缩的系统程序及软件,命名为WINPE.ISO,通过修改此文件内容即可修改光盘系统核心,可使用操作系统自带的makecab.exe工具将WINPE.ISO打包成CAB压缩文件。
3、核心分析
光盘系统核心为WINPE.ISO,格式为标准ISO,不含启动信息。系统核心以PECMD加载处理,PECMD包含可执行文件PECMD.EXE和配置文件PECMD.INI。PECMD.EXE运行后可查看帮助信息,PECMD.INI为加载执行脚本。
系统核心另一个关键要素为SETUPREG.HI_,即SETUPREG.HIV以LZX算法压缩的CAB文件改名而得。
光盘系统加载的虚拟盘有两种形式,可读写光盘和本地硬盘,主要是通过WINPE核心的格式来控制的,若WINPE核心格式为标准ISO格式,加载后虚拟盘(如X:)即为可读写光盘,若为IMG格式则为本地硬盘。
4、PECMD命令分析
PECMD命令较多,常用的有FBWF、FORX、MOUN等。MOUN用于挂载外部WIM文件,可通过虚拟磁盘挂载,也可挂载系统虚拟盘,若要挂载系统虚拟盘,则系统虚拟盘必须为本地硬盘格式,即WINPE格式必须为IMG格式。若要挂载其他虚拟盘,必须修改SETUPREG.HIV安装Ramdisk驱动添加Ramdriv参数项。MOUN命令必须在FBWF命令之以执行。
5、备注
1)编辑HIV文件
可使用regedit.exe编辑HIV文件,方法是选择“HKEY_LOCAL_MACHINE”目录项后,点击“文件”菜单选择“加载配置单元”菜单项,通过文件对话框加载要编辑的HIV文件(如SETUPREG.HIV),并设置单元名称(如SetupReg),编辑完成后关闭保存即可。此方式只能编辑系统信息,如服务、启动项等,若要设置用户注册表项,必须使用PECMD的REGI名称。
6、后记
有什么问题,欢迎一起交流讨论。
[ 本帖最后由 dgxhls 于 2010-5-26 17:09 编辑 ] |
|