zoukankan      html  css  js  c++  java
  • .Net程序集强签名详解

    强签名:

    1. 可以将强签名的dll注册到GAC,不同的应用程序可以共享同一dll。

    2. 强签名的库,或者应用程序只能引用强签名的dll,不能引用未强签名的dll,但是未强签名的dll可以引用强签名的dll。

    3. 强签名无法保护源代码,强签名的dll是可以被反编译的。

    4. 强签名的dll可以防止第三方恶意篡改。

    强签名的方法:

    1. 有源代码:

    1.1 使用vs tool command:snk –k mykey.snk 生成签名公钥。

    1.2 将公钥加入项目中,并设置项目属性,设置签名公钥

    image

    1.3 重新生成项目。

    2. 没有源代码。

    2.1 创建强签名键:

    sn.exe -k key.snk

    2.2 反汇编dll为il

    ILDASM.exe SomeLibrary.dll /OUTPUT=SomeLibrary.il

    该指令会反汇编该dll并生成SomeLibrary.il,如果该dll含有嵌入的resource,

    则会有SomeLibrary.res文件产生,并有相应的嵌入资源文件产生。

    2.3 重新汇编为dll

    ILASM.exe SomeLibrary.il /DLL /OUTPUT=SomeLibrary.dll /KEY=key.snk

    如果有嵌入的资源文件,则需要加上 /RESOURCE=SomeLibrary.res

    强签名的dll与未签名的在反编译后的区别:

    未签名的:

    image

    强签名的:

    image

    更多详细信息参考 StringNaming

    http://windowsdevcenter.com/pub/a/dotnet/2003/04/28/strongnaming.html

  • 相关阅读:
    Docker _简单使用
    IDEA常见问题
    Linux安装JDK
    vitualbox网络设置链接
    MQ对比
    乐观锁和悲观所在数据库中的实现
    11.08 JS知识
    11.07知识整理
    11.06 知识整理
    本周知识整理
  • 原文地址:https://www.cnblogs.com/philzhou/p/2804680.html
Copyright © 2011-2022 走看看