2012-07-18 21 views
0

我试图在ntfs分区上实现反取证工具。我需要保留文件系统写入的1GB空间(在精确的物理位置)。 我的想法:如何保护扇区不被写入NTFS

  • 尝试创建一个特定位置的1GB的文件(原理),因此将被视为使用
  • 尝试手动编辑MFT并插入一个假的条目,以纪念该区域所用(怎么样?)

任何有关如何实现这两个想法或其他东西的建议?

+0

这将是困难的,因为:(1)NTFS驱动程序没有任何功能/ IOCTL用于此目的。 (2)在NTFS驱动程序中需要挂钩,因为它决定为新对象(文件,文件夹,流等)分配哪个簇号。 (3)Windows在文件系统驱动程序中不提供挂钩机制。即:它们在执行文件系统函数之前或之后。在执行后挂钩的情况下,实际的集群分配已经完成。 – Jay 2012-07-18 23:03:31

回答

0

直接编辑MFT是很危险的。文件系统真的很喜欢负责缓存的东西)。

您可以使用FSCTL_MOVE_FILE将1Gb文件的任何部分移动到您想要的磁盘上的位置,从而实现您想要的效果。

请注意,这种方法存在一个复杂性和一个问题。复杂的是,你需要移动到没有文件数据的地方,这意味着你必须首先清除目的地。这意味着你必须读取位图来找出你想要移动到的位置。听起来像是一个碎片整理器,呃?

说到碎片整理程序,一旦创建了这个文件,任何运行的碎片整理程序都可能将其移出它的首选位置。请注意。

0

这很危险,需要一些实验。

手动,您可以在MFT中人为地创建一个文件记录,其中包含BAAD!记录开始处的幻数(而不是FILE0),使其数据属性非驻留并指向数据运行列表中的该位置以获取所需群集的数量。现在,您必须将$ Bitmap文件中的这些群集标记为1.您还必须将群集添加到MFT中的$ BadClus文件。

MFT中的$ Bitmap文件是一个具有卷大小的结构,每个位表示卷中从0到簇中大小的每个簇。如果该位为0,则相应的群集是空闲的,否则它被占用。

如果您在没有Windows的情况下认为卷损坏就意味着您已经完成了从NTFS,Windows资源管理器和其他Windows API函数的角度来查找文件不会找到任何东西。但是,大多数取证工具可以自行分析原始卷,并专门查找这些差异。但是你的文件将不会被写入(除非驱动器被重新格式化)。

愚弄某种法医工具的最佳方法是创建一个常规文件,您可以将它重新安装为重新分析点或驱动器,但必须创建自己的API来加密/解密该文件并将其作为卷装入它可能包含的文件系统无关。该工具将看到该文件,但它会被加密。