袁 杰,江祖敏
(武汉大学 计算机学院,湖北 武汉 430072)
为了使个人的重要文件对其他人具有透明、不可见的效果,人们往往使用文件隐藏来达到目的。针对文件隐藏,一个重要的技术衡量指标是文件的隐藏强度,即顺利获取被隐藏文件所需的时间复杂度。现有文件隐藏技术包括:利用回收站特性,将文件伪装为回收站中的文件[1];修改注册表,使得无法通过常规方法显示隐藏文件[2];改变API执行流程,用自定义的文件相关函数入口地址替代原文件管理相关函数的入口地址,过滤掉待隐藏文件的有关内容后再重新调用原函数;直接修改底层驱动,对底层模块返回的信息进行过滤来实现文件隐藏[3-4]等。
FAT32文件系统[5-6]是微软公司发明并拥有部分专利的文件系统,是一种规定文件在磁盘上的具体存储形式的“格式标准”,通过它可有效地对物理磁盘进行管理。由于它采用了以32位为一个表项的文件分配表 (File Allocation Table,FAT)来解决分区大小的局限,故称之为FAT32。虽然微软已经推出了新一代文件系统NTFS(New Technology File System,NTFS)来改善文件系统的性能、可靠性和磁盘利用率等指标,但FAT32仍然占据有极大的使用场合,目前众多移动设备上的文件系统,如U盘、手机SD卡、PDA上的扩展存储器大多采用FAT32文件格式,因此,研究基于FAT32文件系统的文件隐藏具有应用价值。
在详细分析FAT32文件系统组织文件和Linux虚拟文件系统(Virtual File System,VFS)支持多种文件系统原理的基础上,本文基于FAT32管理文件和操作系统显示文件的相关机理,采用修改文件目录项有关属性和重构文件FAT表项序列排列结构等技术,在逻辑上改变文件簇的位置,提出了一种具有高隐藏强度的文件隐藏方法。……