- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows7的MBR分析
windows 7 的 MBR 分析
前话:? 引导磁盘的 MBR 由 int 0x19 加载到 0x7c00,int 0x19 最后的工作是跳到 0x7c00 执行。
?
一、 我的 bochs 上的 windows 7 的 disk images 介绍
??在 bochs 上,我为 windows 7 分配了 10g 的磁盘空间, 这 10g 的分空间,bochs 是这样分配的:cylinders = 20805, heads = 16, spt = 63
??cylinders(柱面或道)是 20805,heads(磁头或面)是 16,spt(扇区/柱面 - 每道扇区数)为 63
??那么:磁盘空间为:disk size = cylinders * 63 * heads * 512 = 20805 * 63 * 16 * 512 = 10,737,377,280 bytes = 10g
?
二、硬盘的 MBR(主引导记录)
??MBR 是位于:0 扇区(逻辑扇区) 即:0 柱面(0-cylinder),0 磁头(0-head),1 扇区(1-sector)
??大小为 512 bytes。
整个 MBR 的结构如下:
位置(hex)
大小(bytes)
描述
000 - 162
354 bytes
硬盘 MBR 引导记录(代码区)
162 - 1BD
92 bytes
MBR 数据区域
1BE - 1CD
16 bytes
分区表 1
1CE - 1DD
16 bytes
分区表 2
1DE - 1ED
16 bytes
分区表 3
1EE - 1FD
16 bytes
分区表 4
1FE - 1FF
2 bytes
MBR 标志(55AA)
?
1、磁盘分区表(Disk Partition Table)
??在 MBR 里的后 64 个字节里是磁盘的分区表结构,可定义 4 个分区,每个分区 16 bytes,从 0x1be ~ 0x1fe 共 64 bytes。
?
表1:磁盘分区表1(DPT1)结构
位置(hex)
大小(bytes)
意义
描述
1BE
1
分区的启动标志
80 =
?可启动分区
00 =
?不可启动区
1BF - 1C1
3
分区的起始扇区
1BF =
?heads,起始 heads (1 个 bytes)
1C0 =
?sector,低 6 bits 表示起始 sector,这里只用该节字的低 6 bits 来表示 sector
1C1 =
?cylinder,1C0 的高 2 btis 加上 1C1 的 8 bits 组成 10 bits 表示起始 cylinder
1C2
1
文件系统
?如:07 表示 ntfs 系统,详见: HYPERLINK /win7/fs_id.html \t _blank 文件系统
1C3 - 1C5
3
分区的结束扇区
?其意义和起始扇区一致
1C6 - 1C9
4
此分区前扇区数
?这 4 bytes 表示此分区前有多少扇区(实际上等于此分区的起始扇区号),以 little-endian 排列的。
1CA - 1CD
4
此分区扇区数
?这 4 bytes 用来表示此分区共有多少扇区,同样是以 little-endian 排列的。
上面是分区1 的结构,与分区2 ~ 分区4 结构一致 。
?
?
2、下面看看我的 bochs 上安装的 windows 7 分区表
(1)分区1结构
/***** DPT1 分区表1:从 0x1be 到 0x1cd? ******/
000001BE? 80????????? /* boot indicator */????????? ????????????????????? /* 00:? 不可启动分区 */?????????????????? ??????????? /* 80:? 可启动分区(只可有1个启动分区)*/
000001BF? 20?????????? /* 起始 header 号 */000001C0? 21?????????? /* 起始 sector 号 */000001C1? 00?????????? /* 起始 cylinder 号 */
000001C2? 07?????????? /* 系统属性 ID 标记 */ ?????????????????????? 00h:未知操作系统 ?????????????????????? 01h:DOS FAT12(16位扇区数) ?????????????????????? 02h:XENIX ?????????????????????? 04h:DOS FAT1
文档评论(0)