固件吧

 找回密码
 加入论坛

QQ登录

只需一步,快速开始

怎样赚取F币附件需要购买看这里新手论坛固件上传教程附件解压不了的解决方法
查看: 2996|回复: 5

[硬盘] SQLserver数据文件(MDF)的页面文件头结构剖析

[复制链接]
发表于 2009-10-11 17:32:50 | 显示全部楼层 |阅读模式
先执行一下以下SQL语句,我的测试环境为SQL2005

dbcc traceon(3604)
go
dbcc page(master,1,0,2)
可以看到MDF文件的一些物理结构信息,其中包括重要的头96个字节。也就是第一个页面的文件头。

PAGE HEADER:

Page @0x03FA0000
m_pageId = (1:0)                     m_headerVersion = 1                  m_type = 15
m_typeFlagBits = 0x0                 m_level = 0                          m_flagBits = 0x8
m_objId (AllocUnitId.idObj) = 99     m_indexId (AllocUnitId.idInd) = 0    Metadata: AllocUnitId = 6488064
Metadata: PartitionId = 0            Metadata: IndexId = 0                Metadata: ObjectId = 99
m_divvPage = (0:0)                   m_nextPage = (0:0)                   pminlen = 0
m_slotCnt = 1                        m_freeCnt = 7937                     m_freeData = 3059
m_reservedCnt = 0                    m_lsn = (149:448:1)                  m_xactReserved = 0
m_xdesId = (0:0)                     m_ghostRecCnt = 0                    m_tornBits = -1073741694

........
DATA:

Memory Dump @0x62FEC000
62FEC000:   010f0000 08000000 00000000 00000000 †................         
62FEC010:   00000000 00000100 63000000 011ff30b †........c.......         
62FEC020:   00000000 01000000 95000000 c0010000 †................         
62FEC030:   01000000 00000000 00000000 820000c0 †................         
62FEC040:   00000000 00000000 00000000 00000000 †................         
62FEC050:   00000000 00000000 00000000 00000000 †................
   
以上蓝色的文字就是文件头的一些信息。如果这些信息损坏将会造成严重的后果。
经过简单的逐个字节分析,中间借助了windows计算器和c#的BitConverter.GetBytes函数。得出了如下文件结构图,其中每行4个字节,一共分析了文件头的前64个字节。

2009-10-11_173324.jpg
在数据库的头96个字节中第0x40开始直道0x5F应该都是0。
我发现只有测试页的m_pageId 的冒号前面的数字不为1时才在0x40到0x5f写入数据。但是具体代表什么还没有看出来。
姑且认为数据库第一个页面的0x00-0x3f就如上图所示,0x40-0x5f都为0(不正确的话请纠正一下)
这张图有什么用呢,如果你理解了上述参数的意义,用二进制编辑器打开一个头文件损坏的mdf文件就有可能恢复这个已经损坏的数据库。
偶不是dba也不是专业恢复数据的,只是个普通的开发人员,怎么恢复还请有经验人士补充一下。
有情提醒,这些东西非常危险,请不要随意测试,最好找一个没用的数据库来研究。
回复

使用道具 举报

发表于 2009-10-14 14:21:25 | 显示全部楼层
分析的不错,
回复 支持 反对

使用道具 举报

发表于 2009-11-20 16:56:40 | 显示全部楼层
不错,支持下
回复 支持 反对

使用道具 举报

发表于 2010-1-31 11:10:21 | 显示全部楼层
支持。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-21 14:52:54 | 显示全部楼层
哈哈,支持下了???
回复 支持 反对

使用道具 举报

发表于 2019-8-10 15:57:29 | 显示全部楼层
围观 围观 沙发在哪里!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入论坛

本版积分规则

QQ|小黑屋|固件吧移动版|固件吧论坛 ( 浙ICP备11055615号-1 )

鲁公网安备 37172502371702号

GMT+8, 2025-6-18 10:00 , Processed in 0.069814 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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