给主程序添加签名
 
添加完成后会自动生成一个*.pfx文件。
 
 
给程序添加强签名方法:
 
本文以Quartz.dll为例,使用vs Tools下的工具命令。
 
打开命令工具是这个样子,
 
 
第一步:生成随机密钥对,
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>sn -k QuartzSnk.snk
 
第二步:将DLL文件反编译成IL中间语言文件
生成的结果文件为Quartz.il,Quartz.res,Quartz.quartz.config,Quartz.Impl.AdoJobStore.Common.dbproviders.properties,Quartz.Xml.job_scheduling_data_2_0.xsd
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>ildasm E:\DllSnk\Quartz.dll /out:E:\DllSnk\Quartz.il
 

第三步:将签名密钥写入到DLL中。(注意dll文件名是否重名,可以先写一个不冲突名称合成dll,然后再修改)

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>ilasm E:\DllSnk\Quartz.il /res:E:\DllSnk\Quartz.res /dll /key:QuartzSnk.snk /out:E:\DllSnk\Quartz2.dll
 
第四步:检查刚才签名是否正确有效。
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>sn -vf E:\DllSnk/Quartz2.dll
 
特别注意:在签名DLL的时候路径一定不要太长,否则任何一步操作都会失败。最好在磁盘根目录下创建一个文件夹,将需要签名的DLL放到这里进行签名合成。
如我写成这样,提示我“指定了多个输入文件”ildasm D:\Documents\Visual Studio 2013\Source\Bitbucket_Git\AutoUpdate\AutoUpdater\DLL\Quartz.dll /out:E:\DllSnk\Quartz.il

给主程序签名及第三方dll强签名的更多相关文章

  1. C# 给主程序签名及第三方dll强签名操作

    1.给主程序添加签名   添加完成后会自动生成一个*.pfx文件.     2.给第三方程序添加强签名方法:   本文以WAPIWrapperCSharp.dll为例,使用vs Tools下的工具命令 ...

  2. dll强签名的由来和作用

    C# dll强签名介绍 之前基本没有这个概念,直到有一天我们的dll被反编译了,导致我们的代码基本上被看到了,才想起来要保护dll的安全性,因为C#语言的在编译过程中会产生中间语言导致dll很容易被反 ...

  3. 给第三方dll强签名

    假若我们要对第三方控件或者是其他的没有源代码的DLL文件想做类似的处理,增加强名称签名,怎么处理,是很多人都会面对的问题.     步骤: 1.首先采用反汇编工具ildasm生成中间语言. ildas ...

  4. 从编译DotNetOpenAuth中学到的程序集强签名知识

    1. 背景 最近在研究DotNetOpenAuth——OAuth的一个.NET开源实现,官方网站:http://dotnetopenauth.net/ . 从GitHub签出DotNetOpenAut ...

  5. VS报:"dll标记为系统必备组件,必须对其进行强签名"错误

    问题: VS生成程序时,报“要将程序集“XX.dll”标记为系统必备组件,必须对其进行强签名.”错误. 解决方法: 1)在报错的解决方案中找到一个可以发布的项目(引用该XX.dll的项目未必可以发布) ...

  6. 解决第三方DLL没有强签名

    -----转载:http://blog.csdn.net/zyming0815/article/details/5939090 创建一个新的随机密钥对:sn -k myTest.snk 第一步: 将D ...

  7. NET 强签名

    强签名: 1. 可以将强签名的dll注册到GAC,不同的应用程序可以共享同一dll. 2. 强签名的库,或者应用程序只能引用强签名的dll,不能引用未强签名的dll,但是未强签名的dll可以引用强签名 ...

  8. 使用InternalsVisibleToAttribute给assembly添加“友元assembly”特性遭遇"强签名"

    一.如何让Intenal成员暴露给另一个程序集 我们知道Modifier为Internal的类型成员仅限于当前程序集能够访问,但是在某些情况下,我们希望将它们暴露给另一个程序集.比较典型的应用场景包括 ...

  9. .NET:强签名程序集的加载问题 之 版本重定向

    背景 多数解决方案会包含多个项目,某些支持插件架构的解决方案中,更是包含多个插件项目,这些项目会使用一些第三方NuGet Packages,如果管理不慎,解决方案中会出现多个版本的引用,这在编译期间不 ...

随机推荐

  1. 「BZOJ 3994」「SDOI 2015」约数个数和「莫比乌斯反演」

    题意 设\(d(x)\)为\(x\)的约数个数,求\(\sum_{i=1}^{n}\sum_{j=1}^{m}d(ij)\). 题解 首先证个公式: \[d(ij) = \sum_{x|i}\sum_ ...

  2. KDevelop4调试pcl一直读取不到.pcd文件

    如题所示,KD下,能编译,运行时一直使用reader.read读取不到pcd,但是使用cmake能正常运行. 后来,使用terminator删掉工程的build文件夹,直接在工程文件下进行编译,报错提 ...

  3. winform 动态添加控件及事件

    for (int i = 0; i < 4; i++) { Button btn = new Button(); //btn.Name = dt.Rows[i]["ANDON_CONT ...

  4. Python 模拟简单区块链

    首先这是说明一下这是Tiny熊老师的教程https://www.cnblogs.com/tinyxiong 另外还要说明一下,暑假指导老师让我们做一些关于区块链的应用.这里只是涉及极其简单的模拟,主要 ...

  5. 树链剖分【洛谷P1505】 [国家集训队]旅游

    P1505 [国家集训队]旅游 题目描述 Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T 城 ...

  6. [USACO08MAR]跨河River Crossing dp

    题目描述 Farmer John is herding his N cows (1 <= N <= 2,500) across the expanses of his farm when ...

  7. centos操作---搭建环境 安装python

    1.安装python3.6.2 安装依赖 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...

  8. sublime侧边栏管理sidebarEnhancements浏览器设置

    sidebarEnhancements是为了增强sublime Text侧边栏功能的一个插件,但是同时也可以实现设置浏览器浏览当前文件的功能. Ctrl+Shift+p 输入package contr ...

  9. Python条件与循环

    1.条件语句: 形式: if 判断语句 : 执行语句1elif 判断语句2: 执行语句2elif 判断语句3: 执行语句3#...else: 执行语句4    占位符 pass 2.循环语句 1.wh ...

  10. git学习中遇到的疑难杂症

    GIT仓库如何恢复到前一次提交 一.通过使用Git版本恢复命令reset,可以回退版本 reset命令有3种方式: 1.git   reset   –mixed:此为默认方式,不带任何参数的git r ...