编程论坛's Archiver

jsxxyzx 发表于 2008-1-7 13:14

请指教:在linux如何C实现windows文件系统分析

Windows文件系统分析
在Linux系统下,使用与文件相关的系统调用实现对物理设备文件的读写,参照Linux系统源代码以及Grub系统的源代码,对不同介质上的FAT格式文件系统进行分析。要求在Linux环境下设计出C语言程序,实现以下功能:
1)、分析DOS/Windows系统引导记录DBR(DOS Boot Record)和引导机制;
2)、通过DBR中的BPB(BIOS Parameter Block)信息分析,构建相关信息的数据结构,比较FAT16、FAT32和VFAT等文件系统的区别与联系。
3)、至少要实现对给出第一FAT入口文件的只读访问。
小弟不太明白,望高手指点!!!
谢谢了

windflush 发表于 2008-1-7 13:54

好难啊~ 不会

jsxxyzx 发表于 2008-1-8 18:53

希望哪位编程高手给指点指点啊
小弟急用啊

linsua 发表于 2008-1-9 04:10

又linux又windows,这个还真不会

可可熊 发表于 2008-1-13 10:10

先得学习一下FAT等文件系统.
还得研究一下内核中关于文件系统的源代码

这个比较麻烦.

first_love 发表于 2008-1-15 14:40

看过一点感觉都没有,还有待学习呀!!

ammana_babi 发表于 2008-4-14 11:50

这个问题不是很太简单,也不是很太难。

这个问题不是很太简单,也不是很太难。
1、首先你需要一个有关FAT文件系统的微软官方文档。
2、找一个比较小的U盘,分别用FAT16和FAT32来格式化,并分别用WinHex做两个镜像文件出来。这两个文件就是你以后做试验的基础。
3、在程序中打开镜像文件,读取前512Byte到一个buffer里面,然后在微软官方文档中找到关于引导扇区(Boot Sector 512B)的介绍,你就可以知道FAT32和FAT16二者在DBR记录上的区别了。
4、在微软官方文档找到文件的存放机制,找到文件,并用自己的C函数访问即可。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.