如何保护部门不被NTFS写入

时间:2012-07-18 12:46:10

标签: ntfs ntfs-mft

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

  • 尝试在特定位置创建1gb文件(如何?),以便将其视为已使用
  • 尝试手动编辑MFT并插入虚假条目以将该区域标记为已使用(如何?)

关于如何实现这两个想法或其他什么的任何建议?

2 个答案:

答案 0 :(得分:0)

直接编辑MFT是危险的。文件系统非常喜欢在缓存内容时负责。)

使用FSCTL_MOVE_FILE将1Gb文件的任何部分移动到所需磁盘上的位置,即可实现所需。

请注意,此方法存在一个复杂问题和一个问题。复杂的是你需要移动到没有文件数据的地方,这意味着你必须先清除目的地。这意味着您必须阅读位图以找出要将其移动到的位置。听起来像是一个defragger,嗯?

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

答案 1 :(得分:0)

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

手动,您可以在MFT中人工创建一个文件记录,并在记录开头使用 BAAD!幻数(而不是 FILE0 ),制作它数据属性非驻留,并指向数据运行列表中所需的群集数量。现在,您必须使用1在$ Bitmap文件中标记这些集群。您还必须将集群添加到MFT中的$ BadClus文件中。

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

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

欺骗某种取证工具最好的办法是创建一个可以作为重新分析点或驱动器挂载的常规文件,但是你必须自己制作API来加密/解密该文件并将其挂载为不相关的卷它可能包含的文件系统。该工具将看到该文件,但它将被加密。