Я использую следующий код:
AppDomain.CurrentDomain.AssemblyLoad += (sender, args) =>
{
var token = args.LoadedAssembly.GetName().GetPublicKeyToken();
if (!IsValidToken(token))
{
Process.GetCurrentProcess().Kill();
}
};
Где IsValidToken()
сравнивает токен открытого ключа загружаемой сборки со списком авторизованных токенов открытого ключа, жестко закодированных в моем приложении в виде массивов байтов.
Является ли это хорошей мерой безопасности для предотвращения нападений с инъекциями кода? Кроме того, это необходимо, учитывая тот факт, что позже я буду запутывать свое приложение с помощью NetReactor? Я пытаюсь предотвратить любое "отслеживание" в моем приложении, причем не только из инструмента Snoop, но и из любых внешних нежелательных источников.