0

DLL がインターネットからダウンロードされたためにロードがブロックされているかどうかをコードで検出する方法はありますか? ユーティリティがアクセス許可の設定を読み取れることは知っていcaspol.exeますが、可能であればコードにとどまりたいと考えています。

4

1 に答える 1

2

ブロックされたコンテンツは NTFS 代替データ ストリームによって制御され、ストリームと呼ばれる sysinternals のコマンド ライン ユーティリティを使用して削除できます。これはADS に関するウィキペディアからの引用です。

Microsoft は、リスクをもたらす可能性のあるダウンロード ファイルからユーザーを保護するために、ファイルに添付された代替データ ストリームにダウンロード ファイルの送信元に関する詳細を格納する添付ファイル実行サービスを導入しました。

ファイルの発信元を追跡するため、インターネットから発信された場合、信頼できないセキュリティ ポリシーが適用されます。ストリームを削除すると、ファイルが信頼できないソースからのものであるという記録が削除されます。これは、ファイルを右クリックしてプロパティを表示し、ブロック解除を選択するのと同じ効果があります。またcaspol、dll を完全に信頼するために使用するのと同じ効果です。

以下は、ファイル test に関連付けられたゼロ バイト ストリームを作成します。

echo hello > test:stream

次の codeproject のプロジェクトには、それらを操作するためのサンプル コードが含まれています。アンマネージ コードからそれらを削除する必要があると思います。

NTFS ボリューム上のファイルの代替データ ストリームへのアクセス

于 2011-09-06T22:36:27.723 に答える