FAT32-Reader

所属分类:磁盘编程
开发工具:C
文件大小:1713KB
下载次数:0
上传日期:2023-03-22 07:39:04
上 传 者sh-1993
说明:  FAT32读卡器,,
(FAT32-Reader,,)

文件列表:
.clang-format (248, 2023-03-22)
.gdbinit (26, 2023-03-22)
CMakeLists.txt (270, 2023-03-22)
LICENSE (35149, 2023-03-22)
cmake (0, 2023-03-22)
cmake\FindCheck.cmake (2080, 2023-03-22)
doc (0, 2023-03-22)
doc\asset (0, 2023-03-22)
doc\asset\functions.png (34369, 2023-03-22)
doc\asset\linux (0, 2023-03-22)
doc\asset\linux\阅读1.png (92071, 2023-03-22)
doc\asset\linux\阅读2.png (173863, 2023-03-22)
doc\asset\linux\阅读3.png (234788, 2023-03-22)
doc\asset\linux\阅读4.png (35698, 2023-03-22)
doc\asset\linux\阅读5.png (24410, 2023-03-22)
doc\asset\ppt_pbp.png (215315, 2023-03-22)
doc\asset\run (0, 2023-03-22)
doc\asset\run\clusters.png (33915, 2023-03-22)
doc\asset\run\cmp.png (69751, 2023-03-22)
doc\asset\run\cwd.png (4580, 2023-03-22)
doc\asset\run\disk.png (14407, 2023-03-22)
doc\asset\run\dump.png (13085, 2023-03-22)
doc\asset\run\runing1.png (43388, 2023-03-22)
doc\asset\types.png (57829, 2023-03-22)
doc\asset\winhex (0, 2023-03-22)
doc\asset\winhex\calc.png (71261, 2023-03-22)
doc\asset\winhex\create_txt.png (4980, 2023-03-22)
doc\asset\winhex\winhex1.png (26739, 2023-03-22)
doc\asset\winhex\winhex10.png (3172, 2023-03-22)
doc\asset\winhex\winhex11.png (2256, 2023-03-22)
doc\asset\winhex\winhex12.png (2943, 2023-03-22)
doc\asset\winhex\winhex13.png (3481, 2023-03-22)
doc\asset\winhex\winhex14.png (10567, 2023-03-22)
... ...

# FAT32-Reader ## 使用说明 ## 功能简介 本项目运行在 Linux 环境下。它提供了一个交互窗口。 用户可以通过输入指令,读取一个装载了 FAT32 文件系统的磁盘映像,解析、查看该磁盘的目录结构,或从中导出文件。 ## 操作指南 运行后,会看到提示前缀 `[ImagePath:FilePath]$ `。ImagePath 是现在所加载的磁盘文件名,FilePath 是当前所处的文件夹名。 你可以通过输入来与程序交互: - 输入 `load`,会进入加载磁盘映像的引导 - 输入 `disk`,可以显示 FAT32 文件系统的 DBR 信息 - 输入 `exit`,可以退出程序 - 输入 `cwd`,可以显示完整的当前位置 - 输入 `ls`,可以显示当前位置下的文件和文件夹 - 输入 `dump`,进入导出文件的引导,可以导出一个当前位置下的文件 - 输入 `cd`,进入切换目录的引导 ## 实现原理 程序利用 FAT32 文件系统的结构,通过解析二进制文件的方式来实现对文件系统的操作。 ## 部分细节 1. 对于中文文件名,在 Linux 中,会被解析为 UTF-8,且 Linux 在将其解析为长文件名时,采用的是直接按字节拆分后高位补 0 的方式。我们使用的也是这种解析方式,而不是 FAT32 标准中提出的 UTF-16。这会导致从 Windows 下创建的 FAT32 映像的中文目录项出现乱码,而 Linux 下创建的 FAT32 映像则可以正常完美解析 2. 在 load 和 dump 要求输入目标本地文件名时,请使用绝对目录 3. dump 可以保证读取出的文件内容与原本内容没有差异,但文件名和新文件的具体权限控制需要用户自己把握。 4. cd 不仅可以输入绝对路径和相对路径,也支持使用 .. 和 . 5. 文件操作时产生的 error number 可以使用 `errno` 指令查看具体含义(需要安装 `errno`) ## 编译 依赖 [libreadline](https://tiswww.case.edu/php/chet/readline/rltop.html)。 Ubuntu 下,可以使用下面的指令安装: ```bash sudo apt install libreadline-dev ``` 编译方式: ```bash mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release ../ make && make install ``` 编译后在 `build/bin/` 下得到 `fat32-reader` ## 测试 单元测试依赖 [check](https://libcheck.github.io/check/) Ubuntu 下,可以使用下面的指令安装: ```bash sudo apt install check libsubunit0 ``` 测试方法: ```bash mkdir -p build && cd build cmake ../ make fat_test && ctest -V ``` ## 后续计划 本项目为小组的软件安全实验成品。后续可能会考虑进行命令行、交互等的优化,或考虑添加对 UTF-16 的编码支持。 如果在使用过程中发现了 Bug,欢迎在 issue 中提出,感谢大家的支持 QwQ。

近期下载者

相关文件


收藏者