NTFS 文件系统小秘密

NTFS 系统中有一个特性,那就是它支持 HardLink 技术。所谓 HardLink 其实就是给一个文件创建一个硬链接,这两个文件享有同一份文件内容。删除其中任一个,别一个仍然保护着原来的数据存在着。这显然是一个有趣的特性。那么怎么来创建一个文件的 HardLink 呢?

首先在 C 盘根目录下创建一个文件 test.txt,  在命令控制台中输入 fsutil hardlink create c:\1.txt c:\test.txt。然后输入回车,即会为 test.txt 文件创建一个硬链接,即 1.txt。打开任意一个文件,你会发现它们的内容是相同的,修改任一个文件,另外的文件也作了相对应的改变。

你可能还没有意识到这个新技术的功能。在现在的一些安全软件中,很多都是根据路径的方法来判断需要保护的文件的,就跟我那篇“进程保护” 的文章类似,它们会根据文件的路径来判断是否是需要保护的文件,如果是,那么对文件的修改就会被过滤掉,说到这里,你可能已经明白了,对,就是可以通过为受保护的文件创建一个硬链接来对文件进行修改,那么通过这种机制来保护文件的安全软件将失去了作用,这也算是一种安全攻防吧。

当然我们也可以调用系统 api 来为某一个文件创建硬链接。

BOOL CreateHardLink(
  LPCTSTR lpFileName,
  LPCTSTR lpExistingFileName,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

其实安全攻防,就是看谁能利用现有的一些简单机制来完成一些不简单的功能了,编程也是。但往往你需要先了解这些简单的机制。

NTFS 文件系统小秘密,布布扣,bubuko.com

时间: 2024-10-21 05:49:48

NTFS 文件系统小秘密的相关文章

CentOS系统挂载exFAT和NTFS文件系统

exFAT和NTFS文件系统在默认条件下并不被CentOS系统支持.有时候在用U盘在CentOS和Windows系统之间拷贝文件时较为麻烦,通过在CentOS系统中安装软件,可以挂载exFAT 和 NTFS文件系统的U盘. exFAT文件系统在CentOS系统的挂载: CentOS需要具备的基本工具:GCC,python 第一步:下载fuse-exfat相关软件并安装 对exfat文件系统的识别通过fuse相关软件支持,下载相关软件包地址:http://download1.rpmfusion.o

redhat6.5安装ntfs-3g rpm来支持ntfs文件系统挂载

linux安装ntfs-3g模块来支持ntfs文件系统挂载 所需包 fuse-2.9.3.tar.gz ntfs-3g_ntfsprogs-2011.4.12.tgz step1. 解压fuse-2.9.3.tar.gz tar -zxvf fuse-2.9.3.tar.gz step2. 编译安装fuse cd fuse-2.9.3 ./configure ./make ./make install 可能出现的错误 cofigure:error:c compiler cannot create

linux中生成考核用的NTFS文件系统

目的: 生成一个NTFS文件系统,要求: 1.$MFT至少2个碎片 2.根目录下建90个以从1开始的数字编号为名的子目录,每个子目录下建80-100个文件,文件编号从1开始编起. 3.有大量文件是由2个或以上碎片组成.(本例多为2个碎片) 1.shell 脚本如下: #!/bin/sh #   # #  Created by www.frombyte.com    张宇 on 2017/3/29.脚本可能有更新,见附件 # mkdir /mnt/padding cd /mnt/padding #

Linux系统挂载NTFS文件系统(转载)

转自:http://hermesbox.blogbus.com/logs/47386987.html 今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其他同学们会有类似经历,于是尽量细致的记录于此.     无论是一块安装了Windows/Linux双系统的硬盘,还是通过USB连接的移动硬盘/U盘,都是可以挂载到Linux系统中的.不过由于Windows本身常用的文件系统包括fat32和NTFS,因此还是需要区别的.废话少说,进入正题. 系统环境如

1-18 编译安装内核支持ntfs文件系统

大纲: 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能 =================================================================== 一.源码编译Linux内核 通常我们想对内核进行升级时,可通过下载源码包,编译内核的方式,对内核进行升级 源码包的下载地址在:www.kernel.org 我们可以直接在linux系统中直接下载,如下命令: wget http

NTFS文件系统-MFT属性体

上篇文章我们已经知道MFT属性体分为两种,一种是常驻属性头另外一种是非常驻属性头两种属性头在结构方面有所不同.那么MFT属性体的数据结构又是如何的呢,其实MFT的属性体是根据属性头的类型不同其数据结构也不同的. 常驻属性的属性体很小,可以直接存放在MFT项中.而非常驻属性的属性体很大,不能MFT项是存不下的,所以需要另外开辟空间存放,这也就导致了常驻属性和非常驻属性的属性体数据结构也是有所不同的. 上图是一个文件名为123.txt文档,里面的内容是123123123,可以看到当数据量较小时,NT

RHEL6.2挂载ntfs文件系统

不知道什么原因我安装的RHEL6.2不认识ntfs文件系统. [[email protected] ntfs-3g_ntfsprogs-2012.1.15]# mount /dev/sda6 /tmp/windows/mount: unknown filesystem type 'ntfs' 所以参考了很多人写的文章.总结了一下: 1.到以下路径下载一个tar包: http://www.tuxera.com/community/ntfs-3g-download/ 2.进行如下操作: tar  -

Linux系统挂载NTFS文件系统

?? 今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其他同学们会有类似经历,于是尽量细致的记录于此.     无论是一块安装了Windows/Linux双系统的硬盘,还是通过USB连接的移动硬盘/U盘,都是可以挂载到Linux系统中的.不过由于Windows本身常用的文件系统包括fat32和NTFS,因此还是需要区别的.废话少说,进入正题. 系统环境如下:操作系统-- RHEL5,详细版本为:Red Hat Enterprise Linux Se

NTFS文件系统的简述

NTFS文件系统的设计思想基于稳定性.和安全性并支持大容量存储设备的文件系统: 1.它提供日志可以增加文件系统的容错率,可以有效的保护系统的安全.NTFS是一个可恢复的文件系统.在NTFS分区上即使强制关机后,一般也不需要运行CHKDSK命令修复磁盘.NTFS文件系统可以通过使用标准的事务处理日志和恢复技术来保证分区的一致性.发生系统失败事件时.NTFS文件系统会使用日志文件和检查点信息自动恢复文件系统的一致性. 2.NTFS文件系统将所有的数据都看作文件,即使是文件系统格式化产生的管理文件系认