- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
出于涉及 Windows 服务器的安全测试的目的,我想尝试将符号链接(symbolic link)上传到 Windows 网络应用程序。然而,根据官方提供的信息,尚不清楚 Windows 硬链接(hard link)(我认为它与 NTFS 连接相同)是否作为可以从硬盘复制的文件存在,就像在 Linux 上一样。它含糊不清,但我觉得 NTFS 联结是不同于“常规”文件的其他类型的文件系统工件 - 我找不到文档来确认或否认这一点。 I.E NTFS 我想知道 NTFS 是否支持直接操作符号链接(symbolic link)记录,以便我可以将符号链接(symbolic link)移动到另一台计算机。
我知道 Windows 软链接(soft link)文件 (.lnk) 不受此限制,但它们不适合测试目的。
我的目标是从虚拟机复制符号链接(symbolic link),然后将其上传到我正在测试的服务器。
这可能吗? (我的印象是它不是。)据我所见,Windows 上的每个程序绝对会将硬链接(hard link)视为目标文件。有没有办法解决这个问题,也许是使用特殊的编辑器暂时损坏文件?如果符号链接(symbolic link)作为文件系统上的普通文件存在,是否可以更改符号链接(symbolic link)以便将其移动到非 Windows 操作系统以供进一步使用?
让我知道这是否是服务器故障的更好问题。由于这与安全性没有直接关系,更多的是安全练习服务中的普通技术问题,我认为它不适合 Stack Exchange 安全性。
最佳答案
很难提供非常直接的答案。我从事备份/修复/镜像项目,我通过 Web 服务将整个磁盘镜像复制到服务器 - 因此,可以做你想做的事,但有很多需要考虑的因素。
硬链接(hard link)
通常假设硬链接(hard link)无法相互区分,但是,链接文件与其“原始”文件之间存在细微差别。不同之处在于,对 $MFT
的查询(在 winapi 函数 DeviceIOControl
上使用与 USN 相关的参数)将仅返回其中一个文件。这可能被视为原始 文件。然后,您可以调用 winapi 函数 NtQueryInformationFile
来枚举硬链接(hard link)。
符号链接(symbolic link)和联结是不同的动物...
通过从中获取属性,您可以知道文件夹 是连接点还是符号链接(symbolic link)。如果它是联结或符号链接(symbolic link),则属性中有一个 ReparsePoint 标志。顺便说一句 - 联结和符号链接(symbolic link)之间的区别在于联结是重定向到同一卷上的另一个位置,而符号链接(symbolic link)是重定向到非卷位置。无论哪种方式,重定向目标始终是另一个文件夹。
有趣的是,符号链接(symbolic link)和联结看起来和操作都像文件夹,而它们实际上是包含重定向信息的文件。当您打开它们时,NTFS 通常会查看重定向,并打开重定向目标。 NTFS 检查重定向目标的权限,因此作为攻击,这可能不是一个可靠的策略。
打开联结/符号链接(symbolic link)时,您可以添加标志 FILE_FLAG_OPEN_REPARSE_POINT
。执行此操作时,NTFS 不会执行重定向,但会打开内容,这实际上是重定向信息,假设您知道该信息的格式,则可以在以下位置重建联结/符号链接(symbolic link)服务器。请注意,重定向可能指向一个可能不存在的位置,或者可能只是暂时存在的。这是预期的,因为某些网络资源可能并不总是可用。
因此,简而言之,复制联结或符号链接(symbolic link)是可能的……而复制硬链接(hard link)名义上意味着复制文件……考虑到上述微妙之处。只要目标文件存在,您也可以手动创建硬链接(hard link)。
对于硬链接(hard link),NTFS 安全图片中有一个有趣的问题。如果用户有权访问文件,并且您在用户无权访问的文件夹中创建了指向该文件的硬链接(hard link),则用户仍然可以使用硬链接(hard link)的路径打开该文件。这是因为链接和原始文件都指向磁盘上的同一个文件(和安全信息)。在任何链接上更改的权限会影响所有链接。如果不知道这一点,您可能会无意中对文件系统造成严重破坏:-)
我知道这有点乱七八糟,所以让我这样总结一下:
NTFS 目录条目可以是文件夹或文件。硬链接(hard link)是所有指向一个文件的目录条目。符号链接(symbolic link)和联结实际上是文件,在大多数实际用途中表现得像文件夹(直到您知道如何获取如上所述的重定向信息)。
关于windows - 在 Windows/NTFS 上可以将符号链接(symbolic link)移动到另一台计算机吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735814/
我在 NTFS 中有一个文件夹,其中包含数万个文件。我已经删除了该文件夹中的所有文件,保存 1。我运行 contig.exe 对该文件夹进行碎片整理,所以现在它只有 1 个片段。但是,该文件夹的大小仍
我有一个程序,正如现在所做的那样,它有一个数据目录,里面有大约 10-30K 的文件,它开始出现问题。我是否应该期望这会导致问题和我调整文件结构的唯一解决方案,或者这是否表明存在其他问题? 最佳答案
对于一个项目,我想获取 NTFS 分区上所有可用/已用集群的列表。为此,我必须转储 $Bitmap 文件并解析其内容。 Web 上的 API 和示例很少,但它们似乎不起作用。是否有一种简单的方法/代码
我可以使用 GetFileInformationByHandle确定与文件关联的硬链接(hard link)的数量。如何枚举构成这些链接的路径? 例如,如果 C:\TEMP_1.BIN和 C:\TEM
如果是这样,那么您如何证明产生的间接费用(日记等)是合理的?如果没有,那么页面文件怎么会碎片化呢?此外,增加集群大小是否会提高页面文件性能(集群空闲空间不是问题)? 最佳答案 您可以查看 filemo
我的问题是关于 NTFS Fs 上的文件分配方法。 我有两个主要问题- 当我在 NTFS 上创建文件时,它是否连续存储在物理硬盘上? 如果没有 - 有没有办法创建一个文件,这样当我写入它时,数据会连续
我想知道 NTFS 元数据中包含哪些信息。 但是我在任何地方都找不到那张纸。 我猜元数据有一个文件名、一个大小和一个属性等。 NTFS 元数据是否也有短路径名称? NTFS 元数据中包含哪些信息? 你
我是 Pinvoke 的新手。当我可以访问目录时,我想在找到 root 后获取 mft。我想使用 DeviceIoControl,例如下面的代码: BOOL DeviceIoControl( (
我的双操作系统 PC(XP Pro 和 Ubuntu)出了点问题,现在它只能在从 Ubuntu Live CD (8.04 LTS) 启动时工作。 我正在将我的数据备份到外部 HDD 以重新安装所有内
我需要从 Java 读取和修改 NTFS 分区上文件的“压缩”属性。我在 java.nio.file.attribute 中想象了一些东西package 可以做到——见鬼,它是一个足够复杂的包,但我找
我想知道 NTFS 对存储在其上的数据提供了什么样的可靠性保证?例如,假设我正在打开一个文件,追加到末尾,然后关闭它,并且在这个操作过程中随机断电。我能找到完全损坏的文件吗? 我问这个问题是因为我刚遇
根据 Wikipedia NTFS 允许两个大小写不同的相似名称(如 Readme.txt 与 readme.txt),并且只有 Windows 文件 API 会阻止它。 Current Window
我在 windows xp 上测试过这个。 如果我这样做 创建一个文件。 写入文件。 关闭文件。(然后,文件的 LastWriteTime 被更改) 但如果我这样做 创建一个文件。 设置文件的 Las
我刚刚开始编写一些程序来处理 WinXP 系统上具有非英文名称的文件名。我已经完成了一些关于 unicode 的推荐阅读,我想我已经了解了基本概念,但有些部分对我来说仍然不是很清楚。 具体来说,NTF
使用 NTFS 的 Windows 如何处理大量文件和目录? 在遇到性能问题或其他问题之前,是否有关于您可以放置在单个目录中的文件或目录限制的任何指导? 例如拥有一个包含 100,000 个文件夹
鉴于微软有 deprecated Transactional NTFS (TxF) : Microsoft strongly recommends developers utilize alterna
我想为文件存储一些与应用程序相关的元数据,而 NTFS 备用数据流 (AltDS) 将允许我将此元数据直接存储在文件中,而不是存储在单独的数据库中。 我只是觉得这不是一个好主意。我知道这仅适用于 NT
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我正在编写一些代码来解析 NTFS 卷中磁盘上的 MFT。这很简单,但是一个特殊的极端案例引起了我的注意,我在互联网上的任何地方都找不到明确的答案。 对于 NTFS 中的普通文件,如果文件的属性多于单
我想运行一个脚本来检查驱动器,看看是否有一个所有人设置为 NTFS 权限。目前我正在运行: Get-ChildItem D:\ -Recurse | Where-Object { (Get-A
我是一名优秀的程序员,十分优秀!