解析磁盘0号扇区数据

自己写了一个简单工具,可读取磁盘扇区数据。也可下载其他工具查看。本人磁盘0号扇区数据如下

这个0号磁盘是整个磁盘的第一个扇区,称为MBR(Master Boot Record )主引导记录。

此扇区的前446个字节是引导程序,在BIOS的代码执行到最后时,BIOS会将这段程序加载到内存中并开始执行。后面的64字节是硬盘分区表。

从0x1BE~0x1FE 共64字节,是4个分区表项,0x1be~0x1cd为第一个分区表项,0x1ce~0x1dd为第二个分区表项,0x1de~0xed为第三个分区表项,0x1ee~0x1fd为第三个分区表项。由图可知本磁盘有4个分区。

打开计算机管理中的磁盘管理,可看到本人计算机的磁盘情况

现在以第一个分区表项为例

0x1be              为 可引导标识,0x00不可引导,0x80表示可引导

0x1bf~0x1c1  为分区起始CHS(柱面/磁头/扇区)

本分区是 00 21 20  (小端格式),第一个字节 20  记录分区起始磁头号;

第二个字节 21 的低6位 10 0001 记录分区的起始扇区号;

第二个字节的高两位00,和第三个字节的8位记录分区的起始柱面号。

0x1c2               分区类型,0x07表示NTFS,其他类型请参考http://blog.csdn.net/liyun123gx/article/details/38420035

0x1c3~0x1c5  分区结束的CHS地址

0x1c6~0x1c9  分区起始的扇区号,是小端格式。本例中是 0x00 00 08 00 。

每个分区的这个第一个扇区称为DBR(操作系统引导扇区)。通过分析此扇区,可以知道文件系统的一些信息。

0x1ca~1cd      分区的扇区数。本例中是 0x 0c 81 90 00 .可以计算一下 0x0c819000*512(扇区的字节数) = 107426611200 = 100.05G。

参考上面的图可知此分区是C盘,且C盘大小是100.5G。

其他3个分区数据的分析此处就省略了。此扇区只有4个分区表项,如果用户的硬盘分区多于4个分区,就要用到EBR(扩展引导记录扇区)了,本文暂不讨论。

另外,分区1的起始扇区号0x800,加上分区1的扇区数0x0c819000,是0x0c819800,就是第二个分区的起始扇区号。

0x1fe~0x1ff 0xAA55是结束标志

解析磁盘0号扇区数据

时间: 2024-10-09 19:49:30

解析磁盘0号扇区数据的相关文章

本地磁盘显示0字节可用数据的恢复方法

在我们使用电脑的时候,文件数据都会保存在本地磁盘,也就是c盘d盘里,它的容量一般情况下都不会是0字节,但是就有网友遇到了打不开本地磁盘,硬盘0字节的情况,这该怎么办?本地磁盘显示0字节可用数据怎么恢复?下面就让小编为大家带来硬盘0字节可用数据恢复方法的相关教程吧. 硬盘里面出现的这种情况一般是DBR和FDT损坏,U盘出现这种情况一般是U盘前面的若干扇区都变成FFFF这样的没有用的数据破坏了DBR,FAT,FDT记录.碰到盘变成0字节的,建议不要格式化这个盘符,不然可能会把本来还是可用的文件分配表

将Array格式的数据解析成JSON格式的数据

在编程的过程中,数据的传输格式如何,会影响开发的效率和后期代码的维护, 并且现在许多的js中支持了JSON格式的数据, 比如angular.nodejs.本篇文章主要讲解Array(数组)形式数据的解析.其它格式的数据会在后续的文章中进行书写. (1)定义一个解析Array的类JSONArray. public class JSONArray { @SuppressWarnings("unchecked") public static String toJSONString(List

python中jsonpath模块,解析多层嵌套的json数据

1. jsonpath介绍用来解析多层嵌套的json数据;JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java. 使用方法如: import jsonpathres=jsonpath.jsonpath(dic_name,'$..key_name')#嵌套n层也能取到所有key_name信息,其中:“$”表示最外层的{},“..”表示模糊匹配,当传入不存在的key_name时,程序会返回

WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据

Webservice传递的数据只能是序列化的数据,典型的就是xml数据.   /// <summary>         /// 通过用户名和密码 返回下行数据         /// </summary>         /// <param name="UserName">用户名</param>         /// <param name="UserPwd">密码</param>    

案例:Oracle dul数据挖掘 磁盘损坏dul提取数据文件中表的数据及l

通过使用Oracle DUL工具提取损坏磁盘里的数据库文件中的表及lob字段中内容 在有次8i的库恢复中,因为硬盘损坏导致几个表出现很多诡异性坏块,尝试使用dul对其进行挖掘数据,当时使用dul 9 遇到一个难题:当一张表中有lob类型,同时又有varchar2类型,而且varchar2类型数据中包含回车键,使得解决起来很麻烦(因为export_mode=false支持lob,但是不支持字符串含回车;export_mode=true支持字符串含回车,但是不支持lob),最后放弃了对部分数据的挖掘

运维 2.0 时代:数据聚合和分组

运维 2.0 时代:数据聚合和分组 from http://www.cnblogs.com/oneapm/p/4962111.html 运维 2.0 是指,从技术运维升级为服务运维,向公司提供可依赖的专业服务.运维 2.0 强调服务交付能力,而不是技术能力,需求可依赖.懂业务.服务化的专业运维. 为了了解运维 2.0 时代的监控方式,我们不妨从以前的监控手段说起.首先来了解一下 Zabbix ,通过 Zabbix 能够监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员

解析PE文件的附加数据

解析程序自己的附加数据,将附加数据写入文件里. 主要是解析PE文件头.定位到overlay的地方.写入文件. 常应用的场景是在crackme中,crackme自身有一段加密过的附加数据.在crackme执行的过程中解析自己的附加数据,然后解密这段数据.. .. 代码留存: //解析自己的PE文件 TCHAR szModuleFile[MAX_PATH] = {0}; ::GetModuleFileName(NULL, szModuleFile, MAX_PATH); HANDLE hFile =

【实战编程】编写0号中断处理程序

题目:编写0号中断处理程序,在除法溢出时,在屏幕中间显示字符串“hacker by admin!” 之前先补充一个rep movsb的指令知识 movsb和movsw是相反的,都是根据标志寄存器DF的值选择正向传递还是反向传递. 这两个指令都是把ds:si中的值传递到es:di的位置中去 如果df=0时,取正向移动.(inc si和di) 如果df=1时,取反向移动.(dec si和di) 由上可知,只需要改变si和di的值就可以选择正向还是反向 cld 指令 :使df=0:std 指令 :使d

在AFN中使用NSXMLParser解析服务器返回的XML数据

服务器返回的XML格式: 因为苹果没有提供直接获取xml开始标签和结束标签中间的字符串,虽然提供了 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string这个方法获取中间的字符串,但是这个字符串包含了空格和回车,所以要在这个方法中进行过滤. 源代码如下: 8 9 #import "RecommendController.h" 11 #import "SPHTTPRequestTool.h&