DataRun的分析在定位文件在NTFS文件系统中的位置的过程中是必不可少的,他相当于一个父目录开启他所属的某个子目录的钥匙,而且DataRun的分析也是相当复杂需要讨论多种情况。上一篇我们说到,DataRun是起到了“银行卡”的作用。(不知道的请看我的前一篇文章,如果您知道DataRun是什么东东,那就可以直接跳过看第二段…)这里的DataRun指代的是MFT---A0H块的body部分,DataRun记录了他所属MFT所有Index的簇号(当然前提是它要有index)。下面我们来举个例子分析Data Run。

请看上图,深红色的部分就是某一个目录(文件夹)的DataRun, 它由24个字节组成,开头为21H,结尾为87H。首先,我们要先介绍下DataRun的组成,首先我们由上文知道一个MFT的index是由一个或多个不一定连续的簇组成的,比如说一个文件夹Temp,他的Index簇号为19,20,40,50,51。这些簇就会记录在Temp的DataRun中,如何记录呢?分3部 : 1.以19簇开头,2个簇长度; 2.以40簇开头,1个簇长度;3,以50簇开头,51簇长度。大家明白了吗?DataRun中只把非连续的簇信息分开存放,而连续的簇,他只记录首簇号与”有多少个连续的簇”2种信息。其次我们必须了解DataRun信息的存放格式: 信息头(21H)+簇长度(01H)+相对扇区号(0C73H),下面我们来详细分析图中数据。
首先我们由格式可以得出,首先21H为信息头(这名字是我自己起的),他表示什么呢?表示后面有1个字节是表示长度,长度后面有2个字节表示相对簇号,那假设信息头为32H,就表示后面有2个字节是表示长度,长度后面有3个字节表示相对簇号。大家应该明白了吧。他不是单纯的一个16进制数!那我们回到21H,他说后面有1个字节表示长度,那后面我们数过去一个字节,是01H,转化为10进制为1,表示什么?表示这一段信息只有1个簇长度。长度后面有2个字节表示相对扇区号,我们数过去2个字节,是0C73H,读数字会吧,要倒着,内存中就是这么放的,表示相对簇号为0C73H…因为这是第一条信息,所以他就是0C73H簇(这里不明白没关系,后面会说清楚),好,我们第一个index出来了:0C73簇开头的1个簇,就是0C73簇,好,我们下面用同样的方法分析下一段DataRun: 为了看的清楚,我把图片拷贝过来。 
我们看到0CH后面是31H,这个大家知道是什么吗?对,就是信息头,相信大家会分析了吧,我们继续看后面的数据就是01AAE3H开头的1个簇,这时大家要注意,因为01AAE3H为相对簇号,所以下一个index正确的簇号是:此相对的簇号加上前面所有的相对簇号(要全加,不能只加前面一个,如果这是第三个index,那么要把第一个和第二的相对簇号全部和此相对簇号相加),还有一点要注意,相对簇号是用补码表示的!!如果为 相对簇号为E711H,必须转化为原码(就是负数)再与前面的相对簇号(也要转换为原码)相加。这回大家知道什么是相对簇号了吧。我们继续分析…(分析省略)好,我们分析到 8E 72 FF完,忽然发现…怎么是00??00表示什么呢…哈,恭喜你,你已经分析结束,后面的可以不看了。大家如果还有什么问题,欢迎留言,在附件中,我也提供了一些资料,是英文版的,但是对DataRun的分析很有帮助,它举例了几乎所有的情况,在这里我不可能说明拟稿所有的情况,还是请资料帮你吧!
最后,我要说一个让我超级郁闷过的一个问题:更新序列号。

请看图 如果一个MFT的DataRun正好包括某个扇区的最后两个字节,这两个字节为“伪字节”(也是我自己起的),如果按照这2个字节分析,是不可能分析正确的,那正确的2个字节在哪呢??
我们看一个完整的MFT开头

大家看到了吗,打圈圈的地方就是真的数字,大家计算的时候,把假字节覆盖就可以了,好了,就说那么多。希望和大家多多交流经验。

- 大小: 12.6 KB

- 大小: 17.3 KB

- 大小: 32.5 KB
分享到:
相关推荐
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
《基于YOLOv8的智慧社区独居老人生命体征监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-mac.dmg)适用于macOS Intel系统,文件使用360压缩软件分割成两个压缩包,必须一起下载使用: part1: https://download.csdn.net/download/weixin_43800734/90557060 part2: https://download.csdn.net/download/weixin_43800734/90557056
侧轴承杯加工工艺编制及夹具设计.zip
NASA数据集锂电池容量特征提取(Matlab完整源码和数据) 作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
板料折弯机液压系统设计.zip
C6150车床的设计.zip
机器学习之KNN实现手写数字
python爬虫;智能切换策略,反爬检测机制
mpls-vpn-optionA-all
56tgyhujikolp[
GB 6442-86企业职工伤亡事故调查分析规则.pdf
汽车液压式主动悬架系统的设计().zip
2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
内容概要:本文档详细复现了金融数学课程作业,涵盖欧式看涨期权定价和投资组合优化两大部分。对于欧式看涨期权定价,分别采用Black-Scholes模型和蒙特卡洛方法进行了计算,并对彩虹期权进行了基于最大值的看涨期权定价。投资组合优化部分则探讨了最小方差组合、给定收益的最小方差组合、最大效用组合以及给定风险的最大收益组合四种情形,还对比了拉格朗日乘数法和二次规划求解器两种方法。文中不仅提供了详细的MATLAB代码,还有详尽的中文解释,确保每一步骤清晰明了。 适合人群:金融工程专业学生、量化分析师、金融数学爱好者。 使用场景及目标:①帮助学生理解和掌握金融衍生品定价的基本原理和方法;②为从事量化分析的专业人士提供实用工具和技术支持;③作为教学材料辅助高校教师讲授相关内容。 其他说明:文档还包括了完整的论文结构建议,从封面页到结论,再到附录,涵盖了所有必要元素,确保提交的作业符合学术规范。此外,还特别强调了数据预处理步骤,确保代码可以顺利运行。
脉冲电解射流加工喷射装置设计(1)
ThinkPad S1 (2nd Generation) 和ThinkPad Yoga 260 用户指南V3.0,包含如何拆机更换硬件
charles描述文件下载
python代码-使用人类对话数据集lora微调deepseek