0

代码中是否有办法检测 DLL 是否因为从 Internet 下载而被阻止加载?我知道该caspol.exe实用程序可以读取权限设置,但如果可能的话,我想留在代码中。

4

1 回答 1

2

被阻止的内容由 NTFS 替代数据流控制,并且可以由 sysinternals 使用名为streams的命令行实用程序删除。这是维基百科在 ADS 上的引述。

Microsoft 引入了附件执行服务,该服务将下载文件来源的详细信息存储在附加到文件的备用数据流中,以保护用户免受可能存在风险的下载文件的影响。

它跟踪文件的来源,因此如果它来自互联网,它会应用不受信任的安全策略。删除流会删除文件来自不受信任的来源的记录。这与右键单击文件、查看属性并选择取消阻止具有相同的效果。这也与使用caspol使 dll 完全信任的效果相同。

下面创建一个与文件 test 关联的零字节流。

echo hello > test:stream

以下关于 codeproject 的项目有一些使用它们的示例代码。我相信您需要从非托管代码中删除它们。

访问 NTFS 卷上文件的替代数据流

于 2011-09-06T22:36:27.723 回答