我正在使用以下代码:
AppDomain.CurrentDomain.AssemblyLoad += (sender, args) =>
{
var token = args.LoadedAssembly.GetName().GetPublicKeyToken();
if (!IsValidToken(token))
{
Process.GetCurrentProcess().Kill();
}
};
WhereIsValidToken()
将正在加载的程序集的公钥令牌与在我的应用程序中硬编码为字节数组的授权公钥令牌列表进行比较。
这是防止代码注入攻击的良好安全措施吗?此外,考虑到我稍后将使用 NetReactor 混淆我的应用程序,这是否必要?我试图防止任何“窥探”进入我的应用程序,不仅来自 Snoop 工具,还来自任何外部不受欢迎的来源。