SignTool.exe(签名工具)
水漂收集 -- SignTool.exe(签名工具)
=============C#.Net 篇目录==============
签名工具是一个命令行工具,用于用证书对文件进行数字签名,验证文件和时间戳文件中的签名。
用法:signtool [command] [options] [file_name | ...]
|
command |
指定要对文件执行的操作的四个命令之一(catdb、sign、Timestamp 或Verify)。 |
|
options |
用于修改命令的选项。除了全局 /q 和 /v 选项之外,每个命令均支持一组唯一选项。 /q 执行成功时不生成输出,执行失败时生成最少的输出。 /v 执行成功、执行失败或产生警告消息时生成详细输出。 |
|
file_name |
要进行签名的文件的路径。 |
- 四个命令
|
catdb |
在目录数据库中添加或移除目录文件。目录数据库用于自动查找目录文件,并由 GUID 标识。 |
|
sign |
对文件进行数字签名。数字签名可以避免文件被篡改,并且基于签名证书使用户能够验证签名者。 |
|
Timestamp |
时间戳文件。 |
|
Verify |
通过确定签名证书是否由受信任的颁发机构、是否已撤消了签名证书,以及签名证书对于特定策略是否有效验证文件的数字签名。 |
- catdb 命令选项
|
/d |
指定更新默认目录数据库。如果 /d和 /g 选项都未使用,则签名工具更新系统组件和驱动程序数据库。 |
|
/gGUID |
指定更新由全局唯一标识符 (GUID) 标识的目录数据库。 |
|
/r |
从目录数据库中移除指定的目录。如果未指定该选项,“签名工具”将向目录数据库添加指定的目录。 |
|
/u |
指定为添加的目录文件自动生成唯一的名称。如有必要,重命名目录文件,以避免与现有的目录文件发生冲突。如果未指定该选项,签名工具将覆盖与所添加的目录同名的任何现有目录。 |
- 签名命令选项(Sign)
|
/a |
自动选择最佳的签名证书。签名工具将查找满足所有指定条件的所有有效的证书,并选择有效时间最长的一个。如果未指定该选项,签名工具仅查找一个有效的签名证书。 |
|
/ac 文件 |
将文件中的其他证书添加到签名块。 |
|
/c CertTemplateName |
指定用于对证书进行签名的证书模板名(一个 Microsoft 扩展)。 |
|
/csp CSPName |
指定包含私钥容器的加密服务提供程序 (CSP)。 |
|
/d Desc |
指定已签名内容的说明。 |
|
/du URL |
为已签名文档的详细说明指定统一资源定位器 (URL)。 |
|
/f SignCertFile |
指定文件中的签名证书。如果文件是个人信息交换 (PFX) 格式且受密码保护,则使用 /p 选项来指定密码。如果文件不包含私钥,则使用 /csp 和 /k 选项指定 CSP 和私钥容器名。 |
|
/fd |
指定将用于创建文件签名的文件摘要算法。默认值为 SHA1。 |
|
/i IssuerName |
指定签名证书的颁发者的名称。该值可以是整个颁发者名称的子字符串。 |
|
/kc PrivKeyContainerName |
指定私钥容器名。 |
|
/n SubjectName |
指定签名证书的主体的名称。该值可以是整个主体名称的子字符串。 |
|
/nph |
如果支持,为可执行文件取消页面的哈希。默认值由SIGNTOOL_PAGE_HASHES 环境变量和 wintrust.dll 版本决定。 |
|
/p Password(密码) |
指定打开 PFX 文件时使用的密码。(使用 /f 选项指定 PFX 文件。) |
|
/ph |
如果支持,则生成执行文件的页面哈希。 |
|
/r 根主题名称 |
指定签名证书必须链接到的根证书的主体名称。该值可以是根证书的整个主题名称的子字符串。 |
|
/s StoreName |
指定要在搜索证书时打开的存储区。如果未指定该选项,则打开 My 存储。 |
|
/sha1 Hash(哈希) |
指定签名证书的 SHA1 哈希 |
|
/sm |
指定使用一个计算机存储区,而不是使用用户存储区。 |
|
/t URL |
指定时间戳服务器的 URL。如果该选项(或 /tr)不存在,将不会对签名文件执行时间戳操作。如果时间戳操作失败,将生成一个警告。此选项不能与 /tr 选项一起使用。 |
|
/td alg |
与 /tr 选项一起使用,以请求 RFC 3161 时间戳服务器使用的摘要算法。 |
|
/tr URL |
指定 RFC 3161 时间戳服务器的 URL。如果该选项(或 /t)不存在,将不会对签名文件执行时间戳操作。如果时间戳操作失败,将生成一个警告。此选项不能与 /t 选项一起使用。 |
|
/u Usage(用法) |
指定签名证书中必须存在的增强型密钥用法 (EKU)。可以通过OID 或字符串指定该用法的值。默认用法为“代码签名”(1.3.6.1.5.5.7.3.3)。 |
|
/uw |
指定“Windows 系统组件验证”(1.3.6.1.4.1.311.10.3.6)的使用情况。 |
- 时间戳命令选项(TimeStamp)
|
/t URL |
指定时间戳服务器的 URL。要执行时间戳操作的文件必须在以前已经进行了签名。需要 /t 或 /tr 选项。 |
|
/td alg |
请求 RFC 3161 时间戳服务器使用的摘要算法。/td 与 /tr 选项一起使用。 |
|
/tr URL |
指定 RFC 3161 时间戳服务器的 URL。要执行时间戳操作的文件必须在以前已经进行了签名。需要 /tr 或 /t 选项。 |
- 验证命令选项(Verify)
|
/a |
指定可以使用所有方法来验证文件。首先,搜索目录数据库以确定是否在目录中对文件进行了签名。如果未在任何目录中对文件进行签名,签名工具将尝试验证文件的嵌入签名。验证可以或不能在目录中进行签名的文件时,建议使用该选项。这些文件的示例包括Windows 文件或驱动程序。 |
|
/ad |
使用默认的目录数据库查找目录。 |
|
/as |
使用系统组件(驱动程序)目录数据库查找目录。 |
|
/agCatDBGUID |
在目录数据库中通过 CatDBGUID 标识查找目录。 |
|
/cCatFile |
通过名称指定目录文件。 |
|
/d |
说明签名工具应打印描述和描述的 URL。 |
|
/kp |
指定应使用内核模式驱动程序签名策略进行验证。 |
|
/oVersion(版本) |
通过操作系统版本验证文件。版本具有如下格式:PlatformID:VerMajor.VerMinor.BuildNumber |
|
/pa |
说明应使用默认认证码验证策略。如果未指定 /pa 选项,“签名工具”将使用“Windows 驱动程序验证策略”。此选项不能与 catdb选项一起使用。 |
|
/pgPolicyGUID |
通过 GUID 指定验证策略。PolicyGUID 对应于验证策略的 ActionID。此选项不能与 catdb 选项一起使用。 |
|
/ph |
说明签名工具应打印并验证页数哈希值。 |
|
/rRootSubjectName |
指定签名证书必须链接到的根证书的主体名称。该值可以是根证书的整个主题名称的子字符串。 |
|
/tw |
如果签名没有时间戳,则指定应该生成的一个警告。 |
- 返回值
当其终止时,签名工具返回以下的退出代码之一。
0 执行成功。
1 执行失败。
2 执行伴随着警告完成。
相关链接:
参考资料:
作者:滴答的雨
出处:http://www.cnblogs.com/heyuquan/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎园友讨论下自己的见解,及向我推荐更好的资料。
本文如对您有帮助,还请多帮 【推荐】 下此文。
谢谢!!! (*^_^*)
技术群:185718116(广深莞·NET技术),欢迎你的加入
技术群:(.NET研发交流(桂林)),欢迎你的加入
SignTool.exe(签名工具)的更多相关文章
- [工具推荐]004.EXE签名工具SignTool使用教程
数字证书,真是个神奇的东西,可以保证软件不被修改,可以表明文件的发布日期,最重要的,可以很大程度的减少杀毒软件的误报,当然,这就要使用可信任的机构颁发的证书了. 现在要说的不是申请证书,而是如何制作自 ...
- .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法
阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我 ...
- 转载:.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法
.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法 阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集 ...
- 【转】.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法
阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我 ...
- iOS包重签名工具,ipa文件重签名,快速签名,SignTool签名工具,好用的签名工具,App重签名
新工具 ProjectTool 已上线 这是一款快速写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift.Objecive-C双语言 QQ交流群:811715780 进入 Proje ...
- 使用signtool.exe来验证程序的数字签名是否成功(命令行)
signtool.exe是微软提供的数字签名工具,使用如下 signtool verify /pa YourApplicationName
- signtool.exe not found
When check the [sign the Xap File] checkbox, build project failed due to signtool.exe not found. Fol ...
- VS2010 将程序发布至网站时,发生错误“未能给 bin/Debug/publish//setup.exe 签名“
VS2010 将程序发布至网站时,发生错误“未能给 bin/Debug/publish//setup.exe 签名“ 错误: 因为某项目未能生成,所以无法发布. ---------------- ...
- java版MD5签名工具类
package com.net.util; import java.security.MessageDigest; /** * MD5签名工具类 * @author zhangdi * */ publ ...
随机推荐
- ckfinder 1
网上的破解教程对于2.4版本来说已经过时了. 以下是CKFinder 2.4 ASP.NET的亲测可用破解方法,经测试,只需修改两处代码. 打开ckfinder.js, 步骤1. 搜索替换如下代码: ...
- leetcode第一刷_Interleaving String
有关这样的字符串的题真是层出不穷啊,并且他们都有这样一个特点,就是递归的思路如此简单,但一定超时! 这个时候,dp就朝我们缓缓走来.递归超,dp搞!这道题的状态转移方程还是比較好写的,用ispart[ ...
- axf、elf文件转换成bin、hex脚本工具
在嵌入式开发过程中常常遇到将axf或elf文件转换成bin的情况,大家都知道通过gnu toolchain中的objcopy和keil中的fromelf能做到.可是为了这么一个小事而记住复杂的选项以及 ...
- [AngularJS] ng-if vs ng-show
ng-show: ng-show element will stay in dom, just added a ng-hide attr, so it won't show. ng-if: It ha ...
- Qt 学习之路 :Qt 绘制系统简介
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的 ...
- iOS开发UI篇-懒加载、重写setter方法赋值
一.懒加载 1.懒加载定义 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再 ...
- Android Studio学习随笔-模拟耗时操作(sleep)
在这里我申明一点,因为我是挂着VPN去YOUTOBE看的尚学堂的高明鑫老师讲的Android基础学习视频,有些东西他没有讲,而我也没办法,只能等两个星期后学校请老师来的时候进行询问,当然我也会将一些问 ...
- HDU -2298 Toxophily(三分法)
这道题目,可以推出物理公式直接来做,但是如果推不出来就必须用程序的一种算法来实现了,物理公式只是适合这一个或者某个题,但是这种下面这种解决问题的方法确实解决了一类问题 ----三分法,大家可能都听说过 ...
- Builder 建造者模式
简介 建造者模式的概念:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以有不同的表示. 大概的意思,就是一套的构建过程可以有不同的产品(表示)出来.这些产品(表示)都按照这一套的构建过程被 ...
- android studio上代码编译调试中遇到的一些异常记录
下面是记录的在平时代码编写或编译时的一些异常,答案有自己摸索出来的,也有参考其他程序猿朋友的,参考文章过多,就不一一贴出来了. ① E/JavaBinder: !!! FAILED BINDER TR ...