吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11971|回复: 12
收起左侧

[原创] Windows 7 PE光盘引导程序逆向之一——引导光盘结构解析

[复制链接]
XuZhenG 发表于 2010-6-20 21:40
本帖最后由 XuZhenG 于 2010-6-21 13:42 编辑

一、 对于 Windows PE的简单介绍
Windows PE的全称是Windows Preinstallation Environment,即Microsoft Windows 预安装环境,是一个基于保护模式下运行的工具,只拥有较少(但是非常核心)服务的Win32子系统。这些服务为Windows安装、实现网络共享、自动底层处理进程和实现硬件验证。

Windows PE经历了如下主要的发展历程
版本 内核
1.x  Windows XP 或者 Windows Server 2003
2.0  Windows Vista
3.0  Windows 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)
figure1.JPG
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)
figure2.JPG
figure 2
我们Windows 7 PE ISO的该结构为(figure 3)
figure3.JPG
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结构
结构如下
figure4.JPG
figure 4
Windows 7 PE光盘中对应的数据如下
figure5.JPG
figure 5
紧接这下面的结构是 Initial Entry 结构
figure6.JPG
figure 6
对应的数据
figure7.JPG
figure 7


这里需要解释一下 上面说的 Virtual Sector 的大小是0x200 Bytes
而不是物理的 0x800 Bytes
所以 Sector Count = 0x8 实际上 = 0x200 * 0x8 = 0x1000 Bytes
而下面的LoadRBA = 0x1E  Load 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

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ximo 发表于 2010-6-20 21:43
不错,等wowocock来评论。
cjhuen 发表于 2010-6-20 21:43
a6670110 发表于 2010-6-20 22:27
qq20048888 发表于 2010-6-20 22:44
这玩意太深奥了吧。看不懂是什么。
bob123 发表于 2010-6-20 23:19
这东西,也只能膜拜了。好强悍
ttaa33 发表于 2010-6-20 23:32
路过的,看了此天书,感觉对不起楼主的辛苦
hixiaosheng 发表于 2010-6-21 02:43
把硬盘数据学好了,自己就可以开个数据恢复公司了!
 楼主| XuZhenG 发表于 2010-6-21 12:06
本帖最后由 XuZhenG 于 2010-6-21 12:07 编辑

回复 2# ximo


    还是不用大牛来鉴定了吧……
    我会被强烈BS然后信心爆减……

   话说这个还是为了补作业凑出来的……
nofriend 发表于 2010-6-21 17:52
對,這東西不是一般人能夠看的明白
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 22:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表