繁体   English   中英

强名验证不会因修改的程序集而失败

[英]Strong name verification does not fail for modified assembly

观看了视频 ,然后执行的步骤是:

  1. 我创建了一个强命名程序集,来自C#类的a.dll。
  2. 我从具有a.dll引用的C#类(类似于Console Application中的Program.cs的类)制作b.exe。
  3. 我运行b.exe,它可以正确执行。
  4. 我修改了强名称a.dll,并通过sn -v a.dll命令进行了验证 ,响应为:“ 验证程序集失败-强名称验证失败。
  5. 再次运行b.exe,它可以工作,但是我期望出现FileLoadException错误,因为它是经过修改的程序集。 在此视频中发生错误!

我的结果与视频中看到的结果不同。 是否有一个原因?

我猜您正在使用.NET 3.5 SP 1或更高版本,并且我猜视频是基于较早版本的,或者已应用以下修补程序禁用了“强名称签名绕过”功能。

请访问如何:禁用强名签名绕过功能

从.NET Framework 3.5 Service Pack 1(SP1)开始,将程序集加载到完全信任的AppDomain中时,不对强名称签名进行验证...绕过对强名称签名的验证可显着提高性能

因此,只要您以完全信任的身份运行,他们就会更改规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM