DLL がインターネットからダウンロードされたためにロードがブロックされているかどうかをコードで検出する方法はありますか? ユーティリティがアクセス許可の設定を読み取れることは知っていcaspol.exe
ますが、可能であればコードにとどまりたいと考えています。
11656 次
1 に答える
2
ブロックされたコンテンツは NTFS 代替データ ストリームによって制御され、ストリームと呼ばれる sysinternals のコマンド ライン ユーティリティを使用して削除できます。これはADS に関するウィキペディアからの引用です。
Microsoft は、リスクをもたらす可能性のあるダウンロード ファイルからユーザーを保護するために、ファイルに添付された代替データ ストリームにダウンロード ファイルの送信元に関する詳細を格納する添付ファイル実行サービスを導入しました。
ファイルの発信元を追跡するため、インターネットから発信された場合、信頼できないセキュリティ ポリシーが適用されます。ストリームを削除すると、ファイルが信頼できないソースからのものであるという記録が削除されます。これは、ファイルを右クリックしてプロパティを表示し、ブロック解除を選択するのと同じ効果があります。またcaspol
、dll を完全に信頼するために使用するのと同じ効果です。
以下は、ファイル test に関連付けられたゼロ バイト ストリームを作成します。
echo hello > test:stream
次の codeproject のプロジェクトには、それらを操作するためのサンプル コードが含まれています。アンマネージ コードからそれらを削除する必要があると思います。
于 2011-09-06T22:36:27.723 に答える