私は次のコードを使用しています:
AppDomain.CurrentDomain.AssemblyLoad += (sender, args) =>
{
var token = args.LoadedAssembly.GetName().GetPublicKeyToken();
if (!IsValidToken(token))
{
Process.GetCurrentProcess().Kill();
}
};
読み込まIsValidToken()
れているアセンブリの公開キー トークンを、アプリケーションでバイト配列としてハードコードされた承認済みの公開キー トークンのリストと比較します。
これは、コード インジェクション攻撃を防ぐための適切なセキュリティ対策ですか? また、後で NetReactor を使用してアプリケーションを難読化するという事実を考えると、これは必要ですか? Snoop ツールだけでなく、外部の望ましくないソースからも、アプリケーションへの「スヌーピング」を防止しようとしています。