在调用 CreateFile 这个 API 时,若
dwShareMode 这个参数赋为 0;则在此文件句柄被关闭之前,这个文件是无法被其它进程直接读取和拷贝的。比如文件 %SYSTEM%/config/SAM 就是被 system 进程以独占方式打开的。在应用层下,通过读簇的方式,能够实现对这种文件的拷贝。大概流程为:以FILE_READ_ATTRIBUTES 访问模式调用 CreateFile,接着通过 FSCTL_GET_RETRIEVAL_POINTERS 这个 control code 获得这个文件的簇号表,即 LCN,然后就可以打开文件所在的驱动器盘符读取对应的数据了。用这种方式都能读取 FAT32 分区中的文件,不过却不能读取 NTFS 中的小文件。在 NTFS 文件系统中,如果 MFT 中的文件记录(大小为 1K)中还能够存放下文件数据,就不会占用数据区了。
应用层下拷贝以独占方式打开的文件
最新推荐文章于 2023-05-26 11:30:23 发布