C DLL 签名

C DLL 签名签名 DLL 首先需要一个密钥文件 后缀为 snk 密钥文件使用 sn exe 创建 sn exe kMySingInKey snksn exe 工具的具体使用 可以通过 sn exe h 或 sn exe 来查阅帮助文档签名自己的 DLL 打开 VS 工程 进入工程设置 里面有 SingIn 签名 的 table 选中 Signtheassem 再选择对应的密钥文件即可如果没有创

  1. 签名DLL 首先需要一个密钥文件,后缀为.snk
  2. 密钥文件使用sn.exe 创建: sn.exe /k MySingInKey.snk
    1. sn.exe 工具的具体使用,可以通过 sn.exe /h 或 sn.exe /? 来查阅帮助文档


  3. 签名自己的DLL
    1. 打开VS工程,进入工程设置,里面有SingIn(签名)的table
      VS2013 Signing C# project
    2. 选中Sign the assembly,再选择对应的密钥文件即可
    3. 如果没有创建密钥文件,在这里直接创建密钥


  4. 签名第三方的DLL
    1. 如果第三方DLL未签名的话,我们可以使用先用工具ILDASM.exe将该DLL反汇编生成IL文件
    2. 然后再使用工具ILASM.exe将该IL文件重新编译成C# DLL
      1. ILASM.exe 支持/KEY命令,在二次编译的时候使用该命令,带上自己的密钥文件,这样就可以保证二次编译出来后的DLL是strong name 的DLL


    3. 操作示例
      1. 第三方未签名DLL:c:\MyTest\ThirdTool.dll
      2. 反编译: ildasm.exe c:\MyTest\ThirdTool.dll /out=c:\MyTest\MyDasmThirdTool.il
      3. 带签名再编译:ilasm.exe c:\MyTest\MyDasmThirdTool.il /key=MySingInKey.snk /output=c:\MyTest\MySigningThirdTool.dll 这样生成后的就是一个带签名的第三方DLL


    4. 注意事项
      1. 如果第三方DLL反编译后带resource文件(.resx),那么二次编译的时候记得使用/resource命令带上该resource文件
        1. ilasm.exe c:\MyTest\MyDasmThirdTool.il /resource=c:\MyTest\ThirdTool.resx /key=MySingInKey.snk



    5. 不建议强制签名一个未签名的第三方DLL
      1. 一旦强制将一个第三未签名的DLL签名后,那么就意味着所有这个第三DLL所依赖的其他DLL也必须都是签名的,即使二次编译成功,运行时也会导致运行时错误。
      2. 即使当前版本的第三方DLL没有依赖未签名的其他DLL,但不意味着在后续升级版本中不会有此问题。
      3. 从安全性,版权等方面考虑,我们在开发一个要求签名DLL的项目时,应该慎重选择导入未签名的第三方DLL。


    6. 其他
      1. ILDASM.exe 和 ILASM.exe工具的具体使用,可以使用 /? 或者 /h 命令查看帮助文档,系统也自带有对应.chm 使用说明文件
      2. ILDASM.exe 和 ILASM.exe 不一定在同一个目录下



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211025.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:22
下一篇 2026年3月18日 下午11:22


相关推荐

  • 不止一个背包的背包问题_分组背包问题

    不止一个背包的背包问题_分组背包问题有 N 种物品和一个容量是 V 的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 si 次(多重背包);每种体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。si=−1 表示第 i 种

    2022年8月9日
    13
  • java程序设计实验报告_c++程序设计实验指导答案

    java程序设计实验报告_c++程序设计实验指导答案前言一般我们写接口自动化的时候,遇到复杂的逻辑,都会调用API方法来满足前置条件,Pytest的特性是无法用例之间相互调动的,我们一般只调用自己封装的API方法。而httprunner支持用例之间

    2022年7月30日
    7
  • python if else语句_python if else用法

    python if else语句_python if else用法本文介绍了常见的if语句的各种用法

    2026年4月13日
    21
  • 有限覆盖定理证明其他实数完备性定理

    有限覆盖定理证明其他实数完备性定理1 有限覆盖定理证明确界原理证明 设 SSS 为非空有上界的数集 我们证明 SSS 有上确界不妨设 SSS 没有最大值 设 bbb 为 SSS 的一个上界 下面用反证法来证明 supS supS xisupS 存在假设 supSsupSsupS 不存在 取 a Sa inSa S 对任一 x a b x in a b x a b 依下述方法确定一个相应的邻域 Ux x x U x x delta x delta Ux x x 1 1 1 若 x Sx inSx S 因 SSS 中没

    2026年3月20日
    2
  • win10键盘全部没反应_Win10的键盘失灵解决办法

    win10键盘全部没反应_Win10的键盘失灵解决办法最近发现Win10的笔记本,键盘有点失灵,要么按了没反应,要么重复输入,很是恼火,以为是笔记本键帽坏了没弹起来,琢磨了下,发现是win10系统问题,赶紧记下来做笔记1、打开“设置”->”系统”->”电源和睡眠”->”其他电源设置”点击“选择电源按钮的功能”->”更改当前不可用的设置”->将启用快速启动取消勾选,保存修改退出。接下来右键我的电脑-&…

    2022年5月4日
    41
  • 世界各地区5G信道一览表[转载,仅作保存使用]

    世界各地区5G信道一览表[转载,仅作保存使用]世界各地区5G信道一览表[转载,仅作保存使用]

    2022年6月7日
    88

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号