使用FAT32链表来获取不连续文件举例

[复制链接]

该用户从未签到

发表于 2015-1-21 13:52:48 | 显示全部楼层 |阅读模式
使用FAT32链表来获取不连续文件下图是FAT32分区格式的DBR:

001.png

我们现在拷贝一文件hfsetup5.exe到该分区打根目录,并用特殊工具重新打开该分区,跳到根目录,搜索484653455455。

002.png

我们很快就找到了,如下图:

003.png

从目录项目可以看出首簇为0003751F,现在我们跳到FAT1,试着在FAT表中搜索首簇的下一簇00037520,倒过来就是20750300。  如果首簇和第二簇就是不连续的,那就只能用最笨的方法 0003751F*4+34(本例的保留扇区)*512=E187C

004.png

从FAT表可以看出,该文件从0003751f开始,到0003753c告一段落,对应的扇区是多少呢? FAT32某文件或目录首逻辑扇区号= data起始扇区号+(该文件或目录起始簇号-2)*每簇扇区数。现在data扇区是已知的19960,那么这一段落是开始于1832672,结束于1832904+7。 下一个段落的首簇是0003760d,就是0003760d*4+34*512=E1C34 如下图,当我们用鼠标单击E1C34对应位置的时候,软件在左边为我们标出hfsetup的字样。

005.png

如此类推,直到文件结束。

该用户从未签到

发表于 2015-1-25 11:25:21 | 显示全部楼层
a big hex puzzle
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-1-25 20:07:16 | 显示全部楼层
学习了,谢谢分享
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-1-27 11:26:00 | 显示全部楼层
thank you for sharing
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2015-3-5 13:19
  • 签到天数: 13 天

    [LV.3]八品县丞

    发表于 2015-1-27 14:34:35 | 显示全部楼层
    看不懂啊。为什么搜索484653455455呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-23 15:44
  • 签到天数: 1 天

    [LV.1]布衣百姓

    发表于 2015-1-27 19:05:27 | 显示全部楼层
    楼上,那是搜索文件名的16进制数
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-3-13 10:31
  • 签到天数: 19 天

    [LV.4]七品知县

    发表于 2015-1-29 10:05:18 | 显示全部楼层

    学习了,谢谢分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-1-29 10:13:20 | 显示全部楼层
    学习了,谢谢分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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