程序集强签名

1、特点

1.1、强签名的程序集可以注册到GAC(全局应用程序集缓存),不同的应用程序可以共享同一个dll。

1.2、强签名的库(应用程序)只能引用强签名的库。非强签名的库(应用程序)没有限制,既可以引用强签名的库,也可以引用非强签名的库。(实际测试,强签名的应用只引用非强签名的程序集但不使用是可以的,只要使用了引入库的东西,那就会报:引用的程序集没有强签名)

1.3、强签名无法保护源代码,但能防止dll被第三方篡改。

1.4、能防止dll冲突。

2、方法

--如果有源代码

项目 -> 右键 -> 属性 -> 签名:

Signing panel

勾选 Sign the assembly(签名程序集)

Signing panel

填写 key file name,如果勾选了密码保护key file,那么就输入密码。点击OK就创建好了签名文件。

将属性保存,然后再次编译,程序集就是强签名程序集了。

--如果没有源代码

1、首先创建一个签名key file,可以通过有源代码的方式,创建key file备用;也可以通过VS 控制台执行sn.exe -k D:sn.snk 生成key。

2、将无源代码的dll,通过 ILDASM.exe MagicOrm.dll /OUTPUT=D:MagicOrm.il进行反汇编

注意:如果dll有资源文件,同时会生成MagicOrm.res文件

3、带上签名文件重新汇编为dll,如果有资源文件生成,也需要带上,命令:ILASM.exe MagicOrm.il /dll /output=D:MagicOrm.dll /Key=sn.snk /Resource=MagicOrm.res

Over

原文地址:https://www.cnblogs.com/humin/p/4435055.html