Windows 7 PE光盘引导程序逆向之一——引导光盘结构解析
本帖最后由 XuZhenG 于 2010-6-21 13:42 编辑一、 对于 Windows PE的简单介绍
Windows PE的全称是Windows Preinstallation Environment,即Microsoft Windows 预安装环境,是一个基于保护模式下运行的工具,只拥有较少(但是非常核心)服务的Win32子系统。这些服务为Windows安装、实现网络共享、自动底层处理进程和实现硬件验证。
Windows PE经历了如下主要的发展历程
版本 内核
1.xWindows XP 或者 Windows Server 2003
2.0Windows Vista
3.0Windows 7
二、研究Windows 7 PE光盘引导的软件准备
前段时间,我用Windows AIK (Windows Automated Installation Kit) 制作了一个Windows PE 3.0的ISO镜像(用于制作U盘引导),
现在我又恰好在学习bochs虚拟机调试用于研究系统的启动过程
不妨我们就来用bochs来研究一下WIndows 7 PE(官方的说法是 Windows PE 3.0,我的习惯是WIndows 7 PE,下面均使用WIndows 7 PE的说法)光盘的引导过程
你需要准备的工具是:
1、bochs
2、Windows 7 PE的光盘ISO镜像
3、IDA(当然必不可少强大的静态分析工具)
4、WinHEX 或者其他的 16 进制工具
三、Windows 7 PE 引导记录结构解析
El Torito 标准中给出了不可引导光盘,单引导光盘和多引导光盘的结构(figure 1)
figure 1
一般的ISO 一个扇区均为0x800字节 即 2KB
我制作的Windows 7 PE 的ISO里面只有一个可引导的项目,属于单引导光盘
由图可知
第16扇区存放Primary Volume(0x8000-0x87ff)
第17扇区存放Boot Record Volume(0x8800-0x8fff)
其中Primary Volume 与我们的引导没有太大的关系
我们主要分析第17扇区的Boot Record Volume
其中 Boot Record Volume 最前面为Boot Record Volume Descriptor结构(figure 2)
figure 2
我们Windows 7 PE ISO的该结构为(figure 3)
figure 3
较为有用的字段已经在图中圈出,0x00000013 为指向Boot Catalog存放扇区的Absolute Pointor
我们去第0x13号扇区去查看Boot Catalog结构(0x13 * 0x800 = 0x9800)
BootCatalog是由很多有0x20字节大小的结构组成
(包括
Validation Entry
Initial/Default Entry
Section Header
Section Entry
Section Entry Extension )
BootCatalog 最前面的0x20字节是 Validation Entry结构
结构如下
figure 4
Windows 7 PE光盘中对应的数据如下
figure 5
紧接这下面的结构是 Initial Entry 结构
figure 6
对应的数据
figure 7
这里需要解释一下 上面说的 Virtual Sector 的大小是0x200 Bytes
而不是物理的 0x800 Bytes
所以 Sector Count = 0x8 实际上 = 0x200 * 0x8 = 0x1000 Bytes
而下面的LoadRBA = 0x1ELoad Address = 0x1E * 0x800 = 0xF000
上面的计算我们得到真正的引导区代码在0xF000 大小为0x1000 Bytes
我们将在下一节正式开始逆向这些引导区代码
四、结语
通过查询资料,我们找到了光盘的引导区代码存储的位置
学习的过程中英语阅读能力和搜索能力非常重要……
参考标准
The ISO-9660 File System
http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html
“El Torito” Bootable CD-ROM Format Specification
http://bochs.sourceforge.net/techspec/el-torito.pdf.gz 不错,等wowocock来评论。 只能说这东西太高深了,不知说啥好 来者看看长见识了 这玩意太深奥了吧。看不懂是什么。 这东西,也只能膜拜了。好强悍 路过的,看了此天书,感觉对不起楼主的辛苦 把硬盘数据学好了,自己就可以开个数据恢复公司了! 本帖最后由 XuZhenG 于 2010-6-21 12:07 编辑
回复 2# ximo
还是不用大牛来鉴定了吧……
我会被强烈BS然后信心爆减……
话说这个还是为了补作业凑出来的…… 對,這東西不是一般人能夠看的明白
页:
[1]
2