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 );
其实安全攻防,就是看谁能利用现有的一些简单机制来完成一些不简单的功能了,编程也是。但往往你需要先了解这些简单的机制。
时间: 2024-10-21 05:49:48