是否有一种方法在代码中检测DLL是否被阻止加载,因为它是从互联网下载的?我知道caspol.exe
实用程序可以读取权限设置,但如果可能的话,我想留在代码中。
被阻塞的内容由NTFS备选数据流控制,可以使用sysinternals称为streams的命令行实用程序删除。这是一段来自维基百科关于ADS的引文。
Microsoft引入了附件执行服务来存储关于备用数据流中下载文件的来源的详细信息附加到文件,以保护用户免受下载文件的侵害这可能会有风险。
它跟踪文件的来源,因此,如果它来自互联网,它应用不受信任的安全策略。删除流将删除文件来自不受信任源的记录。这与右键单击文件,查看属性并选择取消阻塞的效果相同。这也与使用caspol
使dll完全信任的效果相同。
下面的命令创建一个与test文件关联的零字节流。
echo hello > test:stream
下面的项目有一些使用它们的示例代码。我认为您需要从非托管代码中删除它们。
访问NTFS卷上文件的可选数据流