问题标签 [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.
c# - 此 PInvoke 代码是否正确可靠?
在这个问题中,我搜索了一个简单的解决方案来解锁文件。感谢所有的评论和回答,我通过 PInvoking 找到了一个简单的解决方案DeleteFile
。
它可以工作,但是因为我从未通过 PInvoke (Win32) 使用过文件操作,所以我不知道是否存在一些缺陷,或者是否有另一种调用方法DeleteFile
来删除文件的备用流。
我也不知道是否必须将调用包装在 try/catch 中,或者仅查看布尔结果是否就足够了。在我的测试中,没有出现异常,但我不知道现实世界会发生什么。
这段代码看起来可靠吗?
更新
我发布了一个不完整的方法(解锁方法没有将“Zone.Identifier”文字连接到文件名)。我现在已经更正了,对不起。
windows - Windows 资源管理器备用数据流外壳扩展
我有一些文件使用备用数据流并且未显示在 Windows 资源管理器中。我想制作一个shell扩展或一个在后台运行的程序,当我使用Windows资源管理器并导航到具有备用数据流文件的文件夹时,将此文件显示给Windows资源管理器但上面有一个覆盖图标。
这可能吗?是否有示例代码可以检查?
非常感谢。
ads - AltDS - 备用数据流物理存储在磁盘上的什么位置?
我正在努力寻找有关 ADS 数据物理位置的任何信息。它是存储在 NTFS MFT 中还是 MFT 指向第二个位置?
c# - 工作 C# 示例:在 Win7 64 位下编写和读取 NTFS 备用数据流
我希望能够使用备用数据流来存储我正在构建的数据库应用程序中引用的文件的一些同步信息。
然而,我在网上找到的每一种方法都以某种方式失败了。在 Win32 API 编程方面没有经验我不确定为什么会发生故障。在某些情况下,方法调用似乎成功了,只是没有创建备用流(即,我以后无法从备用文件中读取,也无法看到 AlternateStreamViewer)。在其他情况下,写入成功,但读取失败,因为调用 CreateFile() 会导致无效的 SafeFileHandle。
在这一点上,我只想找到一些工作代码。或者被告知“你不能从这里到达那里”。在这种情况下,我将使用另一种不太吸引人的选项(例如,在文件名本身中编码同步/参考信息,并希望没有人更改文件名)。
我了解我尝试了哪些方法的要求。但是有很多(我花了几个小时在这上面),而且我真的很想了解我没有尝试过的产品。
然而,你说得对,它会有所帮助,因为事实证明我使用的方法之一——下面提到的 Trinet 方法——不正确。我认为问题在于我尚未创建我试图为其保存备用流的“基础”文件。
以下是我尝试过的代码库的链接:
windows - 在txt文件后面运行exe文件
正在阅读有关 Windows 中的 ADS(备用数据流)的信息,所以遇到了这个东西。在 Windows XP 上工作以测试以下内容。
我创建了一个名称为 sample.txt 的文件,其内容为“你好” 创建了另一个名称为 second.txt 的文件,其内容为“我被隐藏了”
在命令提示符下执行以下操作:-
键入 second.txt > sample.txt:newfile.txt
它执行成功
现在,如果我输入这个: -
记事本 sample.txt:newfile.txt
记事本打开 newfile.txt 的内容 - “我被隐藏了”
到这里,一切正常
现在,我试图隐藏一个 exe 文件,比如说 - notepad.exe 在这样的 txt 示例后面:-- (我已将 notepad.exe 复制到同一文件夹中)
键入 notepad.exe > sample.txt:newexe.exe
以上命令运行成功。
问题是,现在我如何运行现在位于文本文件后面的 exe 文件。我的猜测是我需要某种形式的解释器(如第一个示例中的 notepad.exe)来使我的 exe 运行。exe文件是否需要某种解释器才能运行(如文本文件需要一些编辑器)?我知道,exe文件可以直接运行,但在这种情况下,这是行不通的。甚至尝试过:--
启动 second.txt:newexe.exe
但它不起作用。非常感谢您的帮助,因为我对 Windows 内部结构了解不多。
python - 文件夹上的备用数据流
我正在使用基于 python win32com 的 StgCreateStorageEx 调整 testStorage.py 中的代码,以将我自己的 file_id 属性写入任何文件。
根据备用流(尽管不一定来自此 API 调用),应该可以保存到目录/文件夹,但更改标志会产生不同的错误,例如:
结果是:
pywintypes.com_error: (-2147024895, '函数不正确。', 无, 无)
编辑: 关于如何在 WinXP、Win7 和 Windows Server 2003/R2 上运行的任何建议?
请注意,最终结果不一定需要使用这个 API,我只需要能够从 Python 高效地完成它。我所说的高效是指不通过许多不同的技术层。
winapi - 我如何知道 Windows 机器上的特定文件是否支持备用数据流?
使用来自 C/C++ 的原始 Windows 编程 API 和文件句柄或文件、文件夹、链接等的路径;如何以编程方式确定文件(等)是否支持ADS
(备用数据流)?
我假设我必须知道的一件事是该文件是否在 NTFS 分区上,但我再次知道它可能会挂载某种 Mac 或 *nix 文件系统,这些文件系统支持数据分叉或某种替代数据流,并且所有这些情况都可能被单个 API 调用或数据结构覆盖。
其次,我不确定是否可以存在于 NTFS 分区上的每种对象都可以具有 ADS - 例如文件夹、符号链接、硬链接等等?
什么 API 等可以处理所有情况来告诉我给定文件等是否具有 ADS 的能力?
(对于这个问题,我不是在寻找文件是否有ADS,而是在寻找文件是否有可能拥有它们。例如,它可能包括我刚刚创建的文件。)
c - 使用 FindFirstStreamW 查找带有 Zone.Identifier 的文件
好的,所以我正在尝试编写一些可以扫描文件夹并使用 Zone.Identifier 标签识别文件并删除标签(希望如此)的东西。我一直在寻找方法来做到这一点,我正在尝试几种不同的方法。
我有一个使用BackupRead()
etc 的函数,但是我对这种事情有点新手,虽然我已经设法用这种方法找到了流,但我希望用它FindFirstStreamW()
来让生活更轻松,或者至少了解更多关于这个一般。
下面是我第一次尝试使用它:
我所看到的lpFindStreamData
是设置NULL
并保持NULL
并FindFirstStreamW()
返回0xffffffff
,我认为我可以安全地假设这不是我想要的。 lpFileName
是正确的文件名,并且是具有备用流的文件的路径。
如前所述,我是一个菜鸟,C 和 Windows API 的新手,所以如果我使用不正确,犯了某种令人尴尬的愚蠢错误,或者你认为我在叫错树,那么请告诉我.
powershell - 每次我的应用程序(如记事本、escipe)启动时如何启动 .vbs 或 Window powershell
每次我的应用程序(如记事本、escipe)启动时如何启动 *.vbs。这样我就不必每次启动 esclipse 时手动单击 vbs 我也不想将它们放在启动中,因为每次我的任一记事本启动时我都必须运行脚本。
WMI 事件轮询是否有帮助?自定义事件或替代数据流!替代数据流的问题是它会一次启动一个应用程序,无论是我的 vbs 还是我的记事本。我想要两者+或注册表可以提供任何帮助吗?
*操作系统:Window 7 32 和 64 位
winapi - 您如何使用备用数据流,有什么好处?
我已经阅读了一些有关的文档,Alternate Data Streams
并且正在考虑在我自己的项目中使用它们。然而,在我决定使用它们之前,我仍然有很多未知的知识和悬而未决的问题。这就是我制作这个问题列表的原因:
- 如果没有 Sysinternals 工具,你如何枚举 Streams
streams
? - 流会影响“主机”文件的 MD5 值吗?
- 如果我将“主机”文件复制/剪切到另一个(NTFS)路径会发生什么?流也会复制/剪切自己吗?
- 如果我将“主机”文件复制/剪切到另一个不是 NTFS 的路径会发生什么?
- 现有流中是否可以有另一个流?
- 由于每个流都有一个实际的文件句柄,是否可以更改流的属性?
- 我可以使用
LoadLibrary
API 从流中加载 DLL 吗? - 是否可以执行(例如
ShellExecute
)流? - 使用 的优点/优点/缺点是
Alternate Data Streams
什么? - 如果我使用,我需要注意
Alternate Data Streams
什么?
我期待着您的答案/信息/摘要。首选语言是 Delphi,但任何其他语言也可以,只要它使用WinAPI
.