强命名防止dll被篡改
今天试了下强命名是不是能够防止Dll被篡改,按照原理,如果你更改了Dll,CLR在load Dll的时候,验证是不能通过的,Dll是不会被load的。
可是实际情况not the case! 当你用Binary Editor更改了Dll, 例如改变了字符串某个字符,Dll会被load
弄了半天,原来才发现是强命名验证被.NET优化了 http://msdn.microsoft.com/zh-cn/library/cc713694.aspx 需要更改注册表选项。
----------------------Cut from MSDN---------------------
对所有应用程序禁用强名称跳过功能
-
On 32-bit computers, in the system registry, create a DWORD entry with a value of 0 named AllowStrongNameBypass under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework key.
-
On 64-bit computers, in the system registry, create a DWORD entry with a value of 0 named AllowStrongNameBypass under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework and HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework keys.
对单个应用程序禁用强名称跳过功能
-
打开或创建应用程序配置文件。
有关此文件的更多信息,请参见配置文件中的“应用程序配置文件”一节。
-
添加下面的项:
<configuration> <runtime> < bypassTrustedAppStrongNames enabled="false" /> </runtime> </configuration>
----------------------Cut end------------------
出处:http://www.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。