问题标签 [alternate-data-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
83 浏览

alternate-data-stream - 为什么从 gmail 下载签名的 MSI 时会发出警告,但直接从开发机器复制时不会发出警告?

我构建并签署了一个 MSI(使用 WiX)。如果我将它复制到我的 Win8 机器上,它可以完美运行。如果我 gmail 将其下载到 Win8 机器上,我会得到“Windows 保护您的 PC”-“仍然运行”或“不运行”。这是我找不到答案的主要问题:它如何知道这是来自副本还是已下载。

我正在对此进行调查,因为当我使用时间戳服务器签名时,这个弹出窗口(仅当从 gmail 下载时)实际上是在说未知的发布者,即使其他地方看起来都不错。

0 投票
1 回答
535 浏览

ntfs-mft - 备用数据流名称的 MFT 信息

我一直致力于从 MFT 检索文件信息。我看到 MFT 记录包含有关标准信息、文件名、数据和其他一些属性的信息。我尝试解析 MFT 记录以获取它包含的所有详细信息。我能够获得所有文件的文件名、数据(包括备用流的数据),但我无法获得命名备用数据流的文件名。出于测试目的,我创建了一个文件,其中包含两个命名的备用流,其中包含数据。当我解析与文件对应的 MFT 记录时,我无法识别备用流名称。这是否意味着备用流名称未存储在 MFT 中?那么某些实用程序(例如 stream.exe)如何识别备用流名称?

0 投票
2 回答
432 浏览

ntfs - NTFS 备用数据流在 . 和 .. 文件夹

我在玩 NTFS ADS,发现我不能在 . 和 .. 文件夹

我试过了:

  • ..:$I30:$INDEX_ALLOCATION
  • ..::$INDEX_ALLOCATION
  • ..::$INDEX_ROOT
  • ..:$DATA

有没有人知道为什么会这样?有什么办法吗?

谢谢

0 投票
2 回答
1046 浏览

c# - 用于存储元数据的 ADS(备用流)与 DSO(文件属性)

我想以编程方式将一小段元数据添加到一些任意类型的文件中。我正在考虑使用 ADS 或 DSOFile。任何一个选项都更可取吗?优缺点都有什么?效率或稳健性是否存在显着差异?

0 投票
1 回答
102 浏览

c# - 查找具有特定备用数据流的所有文件是存储自定义标签的有效方法吗?

我正在为最终用户编写一个启动器/安装程序,除其他外,它可以选择在开始菜单和/或桌面上生成快捷方式。

理想情况下,我希望这些快捷方式能够支持这些场景:

  • 用户根据自己的喜好更改显示的名称;
  • 用户将快捷方式移动或复制到其他地方(例如,快速启动);
  • 启动器稍后发现它需要更新快捷方式的图标和/或目标位置。

现在,启动器对此并不聪明——如果它已经找到具有当前名称的快捷方式,它将不理会它;如果没有,它将创建一个新的。因此,如果快捷方式的某些内容发生了变化,无论是用户还是启动器的数据库,您现在都会得到一个是当前的,而另一个不是。

为了正确跟踪包括移动和复制在内的快捷方式,我想知道是否在每个仅包含 UUID 的快捷方式中放置一个 NTFS 备用数据流“FoobarInstaller.Shortcut”是一个可行的选择。理想情况下,我希望扫描整个用户目录树(或者可能只是典型的位置,如桌面、开始菜单和快速启动)以查找带有流的文件,并查看是否需要对这些文件应用更新。

我不知道这是否有效。NTFS/Win32 是否具有 API 以有效地按名称查找具有特定 ADS 的所有文件?

0 投票
1 回答
3673 浏览

java - 如何使用 Java 的 IO 读取 Windows NTFS 的备用数据流?

我试图让我的 Java 应用程序读取给定路径中的所有数据。所以文件、目录、元数据等。这还包括 NTFS 称为备用数据流 (ADS) 的一种奇怪的东西。

显然,它就像目录或文件中的第二层数据。您可以打开命令提示符并使用“:”在 ADS 中创建一个文件,例如:

所以,

应该打开一个包含字符串“test”的记事本。但是,如果您这样做了:

您将看不到 ads.txt。但是,如果您使用显示 ADS 数据的 dir 选项,您将能够看到它:

现在,我知道 Java IO 具有读取 ADS 的能力。我怎么知道?好吧,Oracle 的文档清楚地说明了这一点

如果您的文件系统实现支持的文件属性不足以满足您的需求,您可以使用 UserDefinedAttributeView 创建和跟踪您自己的文件属性。

一些实现将此概念映射到诸如 NTFS 替代数据流之类的功能以及诸如 ext3 和 ZFS 之类的文件系统上的扩展属性。

另外,随机论坛上的随机帖子:D

数据存储在 NTFS 备用数据流 (ADS) 中,可通过 Java IO 读取(我已经对其进行了测试)。

问题是,我找不到任何可以解析 ADS 的预先编写的文件属性查看器,而且我不明白如何编写自己的 ADS 解析器。我是一个初学者程序员,所以我觉得这太过分了。有人可以帮助我或指出正确的方向吗?

解决方案

编辑:在@knosrtum 的帮助下,我能够设计一种方法,该方法将从给定路径返回所有已解析的 ADS 信息作为字符串的 ArrayList(它也可以轻松地编辑为文件的 ArrayList)。这是任何可能需要它的人的代码:

0 投票
0 回答
65 浏览

objective-c - 创建和编写 HFS+ 分叉

0 投票
0 回答
1171 浏览

backup - Robocopy 可以仅复制 ADS(备用数据流)吗?即不重新复制数据/安全

我不确定我是否真的了解 ADS,但似乎一个文件有一个主文件,然后可能更多。好吧,我运行了一个程序,发现在执行 robocopy 之后,我的源驱动器比目标驱动器的 ADS 多 700 个左右。

我知道 robocopy 可以复制 ADS,因为我从一个空白驱动器开始,然后使用 ADS 扫描仪进行扫描,显示 robocopy 文件的 ADS。

那么,有人可以帮助消除混乱吗?我可以使用 robocopy 仅复制 ADS 吗?如何让每个卷上的 ADS 数量完全匹配?

0 投票
1 回答
409 浏览

c# - 如何使用 Trine Core io NTFS?

所以我尝试使用 trinet core io ntfs dll 获取 C# 中的替代数据流(使用 VS 2015),但我有一个问题:我找不到写入文件的方法。我试过的代码:

它只是在调试之前抛出一条错误消息:

“FileStream”不包含“WriteLine”的定义,并且找不到接受“FileStream”类型的第一个参数的扩展方法“WriteLine”(您是否缺少 using 指令或程序集引用?)

我该怎么做?我在网上找不到这个,但需要为我的项目使用替代数据流。

0 投票
3 回答
452 浏览

macos - 使用 HFS+ 命名分叉的 API 是什么?

我知道资源叉在 Mac OS X 中已被弃用。

目前尚不清楚不太知名和很少使用的命名分叉是否也被弃用。HFS+ 实际上支持任何文件的任意数量的任意长度的分叉。(Mac 的命名分支在概念上类似于 Windows 的备用数据流或“ADS”。)

是否已弃用仍有理由学习创建、枚举、删除和以其他方式操作文件分叉。

然而,我似乎找不到任何关于使用分叉的 API 的信息。

我所能找到的只是从终端或者其他接受文件名或路径的地方,您可以使用语法访问资源分支,<filename>/..namedfork/rsrc直到最近还可以访问<filename>/rsrc. 我尝试用rsrc其他名称替换,但我在终端中尝试的所有命令都失败了。

我在哪里可以找到有关 API 的旧文档或非官方文档,以便以编程方式在 OS X 中使用命名分叉?

顺便说一句,当谷歌搜索这个话题时,互联网上似乎存在一个普遍的误解。随机下注者说命名叉是建立在命名文件属性上的。事实并非如此。命名文件属性是一个相当新的 OS X 功能。命名分叉早于 OS X。事实上,命名文件属性似乎很可能在幕后使用命名分叉。

无论如何,请不要提交有关命名文件属性的答案。我正在专门寻找有关任意命名分叉的信息。


在 12.7.4 节中有一些关于命名分叉的描述。“属性文件”