玩玩ntfs之新建文件

NTFS文件系统中创建一个文件的基本步骤 在NTFS文件系统中,每一个文件或目录都拥有一个MFT记录,MFT记录中记录了文件或目录的基本信息,对于普通文件来说,一般拥有文件序号,文件名,创建时间,文件大小,文件属性,文件数据地址索引等基本文件信息,而一个目录除了拥有基本文件信息,还拥有其目录下的文件索引项信息,文件与其父目录之间通过该文件的MFT记录中的父目录信息和目录中的索引项来建立隶属关系,这两种信息唯一地确定了文件与父目录之间的对应关系,由此可知,要在一个指定目录下生成一个文件,除了要创建目标文件本身的MFT记录,还需在其父目录的MFT记录或者其索引分配中建立目标文件的索引。在NTFS系统中,文件索引是一个比较复杂的内容,文件的索引采用了树型结构,这给NTFS系统带来了查找文件速度快的优点,但却给当索引结点增加或减少时,如何维护树的平衡带来了难题。在NTFS系统中,小目录的索引直接存放在目录本身MFT记录的90H属性中,而大目录的索引则需另外开辟新的索引分配区来存放相关的索引。原程序中只考虑了小目录的情况,即将文件的索引直接存放在90H属性中,并不考虑大目录的索引情况。除此之外,NTFS系统对于每一个文件操作都会写入日志文件中,以便一致性检查,但由于这方面的内容尚未研究清楚,本程序中也未涉及这方面的内容。 立即下载

作 者: ProgmBoy

by:ProgrammeBoy http://hi.baidu.com/programmeboy
环境:首先新建一个512M的文件.然后用filedisk使用这个文件创建一个volume。然后格式化为ntfs格式。我是按每簇512字节格式化的。
目标:在根目录下添加一个名为777.txt的空文件
工具:filedisk、 Runtime's DiskExplorer for NTFS、winhex
1,先找到$mft,保存重要数据
(根据bootsector中数据找)例如我的bootsector如下图所示
 名称:  1.JPG
查看次数: 240
文件大小:  120.4 KB
这里我们用到的有偏移为B、D、30处这里说明下,显示结果都是10进制的,我们计算下$mft的偏移就是(349525)d *( 512)d* 1= (178956800)d 化成16进制就是(AAAAA00)x。注意这里(数字)d是指10进制的数
而(数字)x是指16进制的数.下同
我们来到这个地方
如下图:
 名称:  2.JPG
查看次数: 241
文件大小:  90.4 KB
2,找到并设置$mft的bitmap
先根据$mft中的bitmap属性(B0)找到run再根据run找到其数据区。
 名称:  3.JPG
查看次数: 240
文件大小:  101.5 KB
选中的那个就是B0属性。这里我们用到的就是紫色那个run,根据run我们知道其数据在55554簇处,即偏移(55554)x*(512)d(我的这个盘一个簇就一个扇区) = (AAAA800)x
我们来到这里:
 名称:  4.JPG
查看次数: 240
文件大小:  66.9 KB
看紫色部分。$mft中的bitmap属性数据中的每一位代表这个mft号的使用情况。比如上面第一二字节16位分别代表$MFT、$MftMirr、$LogFile、$volume、…..$Extend下面的一字节就是系统预留的8个mft号
.再接下来就是0F,化成2进制是00001111,这里得说明一下在bitmap中高位代表低的mft号。
例如:

字节序:            1F
二进制:             0 0 0 1   1 1 1 1 
所代表的mft序号:        8 7 6 5   4 3 2 1  (也就是说第12345正在使用78为空闲)
我们就可以找到空闲位写入我们的MFT了就向上图紫色所示第17位为空闲的,但是这是系统预留的我们不能用。接着往下找29位为空闲。那么我们就可以在第29个MFT中写入我们的MFT。我们设置第29位后bitmap数据由FF FF 00 0F 变成了 FF FF FF 1F
3, 创建新的MFT,写入磁盘
我们来到第29号mft处就是: (AAAA800)x (第一个mft的偏移) + (29 – 1) *(1024)d (每个FILERECORD的大小) = (AAB1A00)x
接下来我们就来手动填充这个MFT,这里我添加了3个最基本的属性, 10, 30, 80。
 名称:  5.JPG
查看次数: 242
文件大小:  186.9 KB
这样不好看,这样
 名称:  6.JPG
查看次数: 243
文件大小:  234.5 KB
额,比直接看数据好多了。。。。。
上面那几个带颜色的时必须填对的…还有那个USA你得在这个MFT的每个扇区的末尾都得设置.例如我这里的是01 00 (看上面偏移AAB1A30处),那么我们就得在这个MFT的两个扇区的末尾都设置成这个.如图:
第一个扇区
 名称:  7.JPG
查看次数: 240
文件大小:  18.3 KB
第二个扇区:
 名称:  8.JPG
查看次数: 240
文件大小:  10.1 KB
就是这样了…
唉,..我这里得atributeID忘加了…日志记录也没加。不过对于我们的目标来说无所谓
4,添加index_entry
Mft添加完了我们得到再到索引中添加….
我们先到第五个MFT也就是root中找到其A0属性,找到索引根
 名称:  9.JPG
查看次数: 240
文件大小:  108.4 KB
其run就是上图紫色部分.我们来到其数据处
 名称:  10.JPG
查看次数: 240
文件大小:  64.1 KB
上面紫色是index_entry的总长度,我们在添加index_entry后也要修改这个值。
我添加的index_entry如下图所示:
 名称:  11.JPG
查看次数: 236
文件大小:  84.3 KB
注意最后这个表示末尾的这一行必须得有呀…别的按照结构体格式直接加就行了。
5,就是在$Bitmap中设置这个扇区为正在使用(注意这个不是$mft中的那个bitmap属性)
   $mft中的bitmap表示哪个mft号在使用
   $Bitmap是表示整个盘中每个扇区的使用情况
这里我们得算下我们的mft在哪个扇区? (AAAB1A00)x / (512)d = (5558D)x
         再算下是第几个字节 (558D)x / 8 = AAB1
我们去第AAB1字节去设置去,$bitmap的数据区在1000BE00(就是在mft中找到$bitmap的FILERECORD然后再找到run就能找到数据区了)
 名称:  12.JPG
查看次数: 238
文件大小:  142.2 KB
我们的MFT的扇区是(AAB1)x + (1000BE00)x = (100168B1)x
 名称:  13.JPG
查看次数: 237
文件大小:  66.1 KB
已经使用了….
基本就是这样了…
我不会刷新缓存,但是重启很麻烦.。这里就体现出用filedisk的方便之处了.首先卸载磁盘,然后重新创建这个磁盘.缓存就会自动刷新了。新建的文件也就会显示出来了。
 名称:  14.JPG
查看次数: 235
文件大小:  99.3 KB

要想加data的话在其FILERECORD得80中加就行了。。
切记。这个程序只对上面说的环境有效。不可在真实磁盘中做实验呀。。。用filedisk创建个虚拟磁盘玩玩还是可以的。。。

下面是添加文件的程序的源代码和doc文件。。本来想写成cmd形式的了,还没写完。。。

一个用Qt写的学习解析NFTS文件系统中的MFT RECORD记录表属性结构的可视化的exe工具, 非源码 MftRecordAnalysis.exe 是学习NFTS文件系统,了解MFT RECORD记录表时用Qt写的学习工具. 左侧目录树是通过解析 $INDEX_ROOT,$INDEX_ALLOCATION,$ATTRIBUTE_LIST获取的子节点索引, 然后根据MFT Record ID找到对应的MFT RECord表记录,获取文件名信息显示. 左侧目录树展开节点或者右键选项加载MFT Record记录时 会把选中的MFT Record 表记录的1024字节的十六进制数据显示到中间 QGraphicsView 控件中。 并且显示所有的MFT Record属性, 可通过鼠标中键放大缩小,拖拽查看. 最右侧的 第一个表格是通过分区的第一个512字节数据获取的数据, 第二个表格是MFT RECORD表记录头布局和属性列表和范围字段 可通过双击查看具体属性解析说明 软件是Qt 5.13.1 MSCV2017 Release 32位编译器编译 如果无法运行,请安装MSCV2017 32位库 详细 可以查看作者NTFS文件系统专栏 软件需要管理员权限运行 立即下载

相关推荐

Cadence IC5141保姆级教程:Bandgap电路四大仿真(稳定性/噪声/启动/PSRR)完整流程与调参心得

本文提供Cadence IC5141中Bandgap电路的四大仿真(稳定性仿真、噪声仿真、启动仿真、PSRR仿真)的完整流程与调参心得。从原理图检查到ADE L配置,详细解析各仿真步骤的关键参数设置与优化策略,帮助工程师高效完成电路设计与性能调优。

weixin_30399821的博客 1650

NTFS文件系统解析(三)

正如上图所示,绿色部分代表IndexEntry的头部,紧接着的红色部分和黄色部分就是去除了标准属性头之后的0x30属性,而最后的紫色部分则存储着子节点的VCN号。为了便于管理,NTFS文件系统为所有的属性定义了统一的头部结构,可以称之为属性头。对于NTFS文件系统而言,无论文件内容本身,抑或真实的文件属性,都被称之为属性。索引根节点通常由标准属性头,索引根属性头,索引属性头和索引属性组成。而由于每种属性的长度不一,因此又额外定义了常驻属性和非常驻属性。属性,这种情况下,文件的基本属性与。

qq_38933606的博客 1040

CloudSat卫星数据高效下载与自动化处理指南

本文详细介绍了CloudSat卫星数据的高效下载与自动化处理方法,包括交互式图形界面和wget批量下载技巧,以及使用Python脚本实现自动化处理和数据质量控制。内容涵盖从数据准备到实战应用的完整流程,特别适合气象研究和气候建模领域的工作者提升工作效率。

weixin_28700411的博客 233

Windows下NTFS文件系统创建与结构概览及DBR字节分析(基于Windows)

本文以图的方式简单明了地示例了一个NTFS文件系统的总体结构是如何的,同时以文字总结配合图示的形式总结DBR重点字节的作用

weixin_60418242的博客 2462

PyTorch ModelNet点云数据集加载实战:从下载到Dataset类完整实现

在三维视觉与点云处理领域,数据集是算法研发的基石。ModelNet作为三维物体分类的基准数据集,其地位类似于图像领域的MNIST,是入门和评估模型性能的通用标准。理解其数据格式与加载原理,是进行点云分类、分割等任务的关键前置步骤。通过PyTorch的Dataset类,开发者可以构建高效的数据管道,将原始点云文件转换为神经网络可直接处理的张量格式,这一过程涉及数据采样、归一化、特征组装等核心操作,直接影响模型的训练效率和最终性能。本文聚焦于ModelNet10/40数据集,详细解析其目录结构,并提供一套稳健的

weixin_29032337的博客 280

1.30 Cubemx_STM32H743 SD_Card纳入文件管理系统

Cubemx_STM32H743 SD_Card纳入文件管理系统1、简介2、CubeMX配置 1、简介 和前面文章原理其实一样的。 1.29 Cubemx_STM32F429\H743 nandflash、spifalsh纳入文件管理系统 现在一并将SD卡、NandFlash、SPIFlash一并作为文件管理。 下面直接介绍SDcard,其他参考前面文章。 2、CubeMX配置 ...

oDuanYanGuHong的博客 1079

如何在NTFS文件系统中创建文件的Link

大部分朋友可能知道UNIX提供了创建文件的Link的功能,而用过Windows的NTFS文件系统所支持的Link功能的朋友可能就没有那么多了(注意我说的不是Shortcut)。今天正好由于工作原因研究了一下相关内容,整理一下分享出来。本文简单介绍如何在Windows系统中使用NTFS文件系统所提供的功能创建Link。NTFS支持两种Link,Junction Point和Hard Link。J

张羿的优快云专栏 5042

生成式引擎优化(GEO)全景指南:技术架构、实施策略与未来趋势

生成式引擎优化(GEO)全景指南摘要 GEO(生成式引擎优化)是针对AI生成内容(如ChatGPT、文心一言等)的优化策略,通过结构化数据、权威建设与语义优化提升企业内容在AI答案中的引用优先级,实现“无点击曝光”。其核心价值在于从流量竞争转向信任构建,突破传统SEO局限。技术架构依托RAG(检索增强生成)、向量数据库及反馈学习机制,动态优化内容生成与引用逻辑。实施策略包括:部署结构化数据(如JSON-LD)、维护动态知识图谱、适配多模态内容(3D/VR)、联合权威机构发布白皮书。行业案例显示,美妆、智能家

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1451

android ntfs u盘,NTFS让U盘短命?想多了

夭寿了,苹果终于开始动手了,将在今年把使用了20多年的HFS+文件系统更新为APFS(Apple File System苹果文件系统),从而实现支持SSD高效运作和对用户数据更为有效的保护。反观微软,各种版本的Windows造成的多格式共存,及什么情况使用何种格式也是争议不断,愁!现在大家能见到的基本也就是NTFS、FAT32和exFAT这三种。FAT32就不多说了,老玩家们对它的感觉是爱恨交加,...

weixin_32589453的博客 582

Cesium WebGL性能调优实战:从卡顿根源到流畅渲染

本文深入探讨Cesium WebGL性能调优的实战技巧,从硬件配置、框架适配到3D Tiles加载策略,全面解决卡顿问题。通过强制启用独立显卡、优化浏览器设置、避免Vue内存陷阱等实用方法,显著提升3D地图应用的流畅度。文章还分享了高级调试工具和实战避坑经验,帮助开发者实现高效渲染。

weixin_27215337的博客 419

【调优】OpenClaw从零开始高阶调优之skill篇

本文详细解析了OpenClaw技能系统的核心机制。首先介绍了技能的分层加载逻辑,按照优先级从高到低依次为:工作区专属技能、全局共享技能、出厂自带技能和自定义路径技能。通过流程图展示了从扫描到注册的完整加载流程,并解释了同名技能覆盖规则。随后深入剖析了SKILL.md文件结构,包含YAML元数据定义技能属性和Markdown正文说明使用方法,以公众号写作技能为例展示了具体配置。文章还提供了技能优先级切换的实用技巧,帮助用户灵活管理不同版本的技能。

海兰 239

Everything研究之读取NTFS下的USN日志文件(1)

转自:http://univasity.iteye.com/blog/805234   http://univasity.iteye.com/blog/805235 我在第一次使用 Everything 时,对其速度确实感到惊讶,后来了解到是通过操作 USN 实现的,并且有一定的局限性(只有 NTFS 下才能使用)。   近来清闲无事(失业了),搞些自己的小项目玩玩。其

XuePiaoFei1的专栏 1万+

redhawk:avgTW maxTW minTW minWC的区别

分析dynamic ir drop报告时会遇到这几个值,avgTW maxTW minTW minWC,如下图。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 691

Ubuntu挂载Windows NTFS盘

为了学习linux我装了双系统,因为我还不想放弃windows的软件兼容性,但是出现了不能读取其他盘的内容,这个问题在我刚刚开始接触linux的时候就已经出现过,那时傻傻的我不知所错,竟然重装系统,把windows给革掉了,但是现在想玩玩windowsphone的开发,所以装了双系统。 Error mounting /dev/sda6 at /media/xxx/xx: Command-li

ZL199104的专栏 785

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CentOS6.3中挂载NTFS移动硬盘的经历

    鄙人当年用PC硬盘做了一个移动硬盘(其实并不方便移动,只是外边包装了一个壳子,可以用USB口访问而已),移动硬盘上存放了一些学习资料。某日想把一部分学习资料拿到公司去学习,可公司的本本不允许带回家,家里的本本又被我装了个CentOS玩玩,就想着能不能先把资料拷到CentOS上,再通过其他方式比如U盘什么的拷到公司去。       奈何CentOS并不认识俺当年做的移动硬盘,因为文件系...

沉醉的专栏 316

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

安卓怎么挂载ntfs硬盘_利用树莓派和闲置硬盘,搭建起家中的个人网盘

因为给个人笔记本电脑升级,替换下来了一块2.5寸的1T机械硬盘,想着闲置也是闲置,不如用来搞一个nas玩玩,可以存放一些个人文件和电影大片,共享给家中的所有人,接下来就跟随我的脚步,一起来看看如何实现吧1.前期准备树莓派(刷好官方系统,具体教程请见百度)闲置硬盘(可以是2.5寸,也可以是3.5寸,但前提是已经买好了硬盘壳子,能够支持USB连接)路由器2.路由器MAC地址绑定先说一下这一步是干嘛,众...

weixin_33087827的博客 1366

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

u盘最大单个文件支持多少g_新买的移动硬盘和U盘该格式化成哪种文件格式?

我有一台MacBook Air经常随身携带,方便随时处理工作上的事情;一台组装的台式电脑,闲暇之余用来玩玩游戏看看电影;办公室还有一台Dell的台式机,这是公司配置的办公用品。不可避免的,我经常需要在几台电脑间共享文件,于是乎,我又有了移动硬盘和U盘。或许,你也是如此。不管你是喜欢Windows还是Mac,你都会碰到这样一个问题:新买的闪存设备(U盘、固盘),到底要用什么文件格式来格式化?FAT3...

weixin_39989980的博客 1126

有关Windows XP用户权限有意思的一些发现

        前几天系统被侄女给弄得一“身”病毒,刚好自己又想装个XP玩玩,觉得漂亮,所以就重装了一下系统。然后又担心被破坏,所以就用到了XP的多用户管理。给侄女新建了一个受限制的用户,这样应该就保险了罢,我想。可下班回来,发现她郁闷着呢,原来她的QQ登陆不了,我说怎么可能,她说还骗你不成,那企鹅晃啊晃的晃了一整天都上不去呢。       不对啊,怎么会这样呢?我觉得有点蹊跷,就研究起来

平淡中求进取,柔和里觅激情 5404

ESXI6.7在nvme的分区上新建存储

新机器(HP Desktop Pro G6 Microtower PC)上想弄个esxi玩玩,看了下CPU是i5 10500, 6核心12线程,满足ESXI的要求。但只有个nvme的磁盘,里面还有正版win10 home版本,于是用diskgenius调整分区,分出了137G的空闲空间,没有格式化,想着以后可能还会用win10。 直接安装esxi6.7不成功,考虑到应该是不认识nvme磁盘,网上找了个打包好nvme,realtek网上的安装包,用rufus刻录到U盘后安装成功! 不想自己折腾的可以来此下载

爱玩的安哥 6579

Linux 7.1内核更新:FRED执行模型、486退役与NTFS重写

操作系统内核的每次版本升级,都不仅是功能叠加,更是一次底层架构的取舍。在x86处理器发展历程中,中断与异常事件的处理机制始终是性能与复杂度博弈的核心,从早期的IDT到Intel提出的FRED新执行模型,硬件与内核正在协同简化事件交付路径。同时,随着硬件迭代,老旧处理器的兼容代码逐渐成为负担,486的正式退役标志着内核最低硬件基线的抬升,为源码精简和现代特性腾出空间。在存储领域,Windows NTFS文件系统在Linux上的支持方案长期多轨并行,内核态ntfs3驱动的成熟让旧有驱动和FUSE方案逐步收敛。理

weixin_31292729的博客 250

linux文件系统及其目录结构、虚拟文件系统

本文为学习笔记,整合课程内容以及部分文章,参考的原文链接如下: 目录文件系统初步认知学术定义文件系统种类什么是分区简单理解windows和linux文件系统的区别文件系统目录结构/etc目录下可以设置开机启动程序切换为root超级用户虚拟文件系统(Virtual File System)(VFS)是什么?有什么作用?EG1:`cp`指令的实现EG2:从系统编程,从上层到底层来看 师承陈立臣 文件系统初步认知 学术定义 文件系统是操作系统用于管理存储设备的文件和数据结构,即在存储设备上组织文件的方法。 文件系

华天朱 474

在U盘上安装debian linux

台式机最后还是挂了。虽然还没彻底挂,启动起来已经颇为麻烦,而且升级到3.0内核后把显示器都给搞熄灭了。跑起来必须用笔记本上的xmanager才能远程玩玩。 于是决定在笔记本上弄个真正的linux。毕竟笔记本内存不是很大,虚拟机上搞,速度不爽。于是想在U盘上装一个。准备了

brucegong的专栏 7133

linux文件系统、文件系统结构、虚拟文件系统

文件系统概述 学术定义 文件系统种类 什么是分区 简单理解windows和linux文件系统的区别 文件系统结构 /etc目录下可以设置开机启动程序 切换为root超级用户 /proc目录举例 绝对路径与相对路径 虚拟文件系统(Virtual File System)(VFS) 是什么? 有什么作用? EG1:cp指令的实现 EG2:从系统编程,从上层到底层来看...

zhuguanlin121的博客 494
上一篇: Ring3下WX方法结束微点2009
下一篇: IRP Hook 键盘Logger
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值