美文网首页
寻找Windows系统文件簇号

寻找Windows系统文件簇号

作者: yingtaomj | 来源:发表于2017-03-26 10:36 被阅读37次
  1. 句柄: 在windows中,句柄是和对象一一对应的32位无符号整数值。对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象。
  2. 操作系统的64位地址常用LARGE_INTEGER结构体表示,低32位LowPart,高32位HighPart,取全部地址QuadPart

首先通过input()函数输入文件的位置

1. 寻找磁盘句柄

HANDLE GetDiskHandle(char iDiskNo)函数中,iDiskNo是磁盘号,通过m_hDevice = CreateFileA(...)返回磁盘句柄。

2. 通过磁盘的句柄,读取扇区512字节数据返回

ReadSectorData函数中,将读取内容保存在lpOutBuffer中,即全局变量OutBuffer

3. 计算MFT起始簇号

利用计算地址函数change(start, num),可以由缓冲区里某个字节的起始位置和这个字节后面有几个字节来计算簇号。

4. 建立循环,一层层找文件
  • 通过SetFileName,计算返回FileName中有效字符个数
  • FindFileMftNo,寻找文件的MFT序号。
    首先调用FindFileName,从读到的簇的文件记录里找到文件名的起始地址,如果找不到,则到index的datarun里面找。

相关文章

网友评论

      本文标题:寻找Windows系统文件簇号

      本文链接:https://www.haomeiwen.com/subject/ceghottx.html