论文部分内容阅读
随着计算机技术的广泛应用,人们对电脑文件的安全信息更加注重。对于黑客或者电脑爱好者,如何不动声色的潜入别人的计算机并获取一些有价值的信息,不断的成为了人们的关注焦点,而且研究这一技术对于间谍或者特务等特殊人群具有重要的现实意义。本文是基于以NTFS (New Technology File System)文件目录为基础,对磁盘的存储结构为目标,研究在Windows下不依赖于应用程序编程接口(Application Program Interface,API)调用来实现在大、小目录下的文件创建技术以及对于在特殊情况下对文件创建的实现,完善NTFS文件系统对目录和文件的操作和管理,使得非Windows用户也可以不依赖于操作系统Windows API甚至在无操作系统的环境下直接对文件进行操作。本文主要通过三个方面的内容来对文件创建技术进行阐述,分别如下:首选,当创建文件后,使得小目录变成大目录,即对于90H属性的索引项比较多,当增加一个索引项后,出现了AOH属性的情况,不能按照一般创建文件的技术进行创建。此时需要构建AOH属性,且需要寻找一个簇的空闲空间来存储所有的索引项,并且修改90H属性。这既解决了在小目录下直接对文件创建,同时也解决了小目录变大目录时的文件创建。其次,在大目录下直接创建文件和在小目录下创建文件的技术方法不一样,大目录下增加了索引缓冲区。在创建的过程中,关键的问题是对通过B+树遍历对文件名进行比较,查找到索引项的插入点。而对于在大目录下对文件的创建,主要过程是使用遍历B+树,查找索引缓冲区,并找到索引缓冲区,然后通过判断索引节点是否存在于所找的索引缓冲区中,然后分别在指定的索引缓冲区位置插入已经创建好的索引项、在磁盘中写入已经插入到索引项中的索引缓冲区,从而实现了在大目录下的文件创建。这实现了在一级索引或者多级索引的大目录下对文件的创建。最后,对于具有索引节点的索引缓冲区的情况,在添加索引项后会出现B+树分裂的问题。解决这一问题的关键是确定叶子节点所达到的最大数量值,那么该节点就要被拆分为两个节点数量相近或者相同的节点,同时保证两个节点中的最大值在上层节点中。通过遍历查找的方式可以确定该最大数量值,同时,该过程实现了动态B+树对节点的自动增加、删除以及分裂。在本文中,根据NTFS目录的结构,系统的讲述文件创建在小目录、大目录以及索引缓冲区中B+树结构分裂等情形下的实现技术。为更为安全的创建文件提供理论知识和技术实现,同时,也为后续更好的研究NTFS提供技术支持。