水漂收集 -- SignTool.exe(签名工具)

=============C#.Net 篇目录==============

签名工具是一个命令行工具,用于用证书对文件进行数字签名,验证文件和时间戳文件中的签名。

用法:signtool [command] [options] [file_name | ...]

command

指定要对文件执行的操作的四个命令之一(catdb、sign、Timestamp 或Verify)。

options

用于修改命令的选项。除了全局 /q 和 /v 选项之外,每个命令均支持一组唯一选项。

/q    执行成功时不生成输出,执行失败时生成最少的输出。

/v    执行成功、执行失败或产生警告消息时生成详细输出。

file_name

要进行签名的文件的路径。

  1. 四个命令

catdb

在目录数据库中添加或移除目录文件。目录数据库用于自动查找目录文件,并由 GUID 标识。

sign

对文件进行数字签名。数字签名可以避免文件被篡改,并且基于签名证书使用户能够验证签名者。

Timestamp

时间戳文件。

Verify

通过确定签名证书是否由受信任的颁发机构、是否已撤消了签名证书,以及签名证书对于特定策略是否有效验证文件的数字签名。

  1. catdb 命令选项

/d

指定更新默认目录数据库。如果 /d和 /g 选项都未使用,则签名工具更新系统组件和驱动程序数据库。

/gGUID

指定更新由全局唯一标识符 (GUID) 标识的目录数据库。

/r

从目录数据库中移除指定的目录。如果未指定该选项,“签名工具”将向目录数据库添加指定的目录。

/u

指定为添加的目录文件自动生成唯一的名称。如有必要,重命名目录文件,以避免与现有的目录文件发生冲突。如果未指定该选项,签名工具将覆盖与所添加的目录同名的任何现有目录。

  1. 签名命令选项(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)的使用情况。

  1. 时间戳命令选项(TimeStamp)

/t URL

指定时间戳服务器的 URL。要执行时间戳操作的文件必须在以前已经进行了签名。需要 /t 或 /tr 选项。

/td alg

请求 RFC 3161 时间戳服务器使用的摘要算法。/td 与 /tr 选项一起使用。

/tr URL

指定 RFC 3161 时间戳服务器的 URL。要执行时间戳操作的文件必须在以前已经进行了签名。需要 /tr 或 /t 选项。

  1. 验证命令选项(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

如果签名没有时间戳,则指定应该生成的一个警告。

  1. 返回值

当其终止时,签名工具返回以下的退出代码之一。

0                执行成功。

1                执行失败。

2                执行伴随着警告完成。

相关链接:

(2)强名称程序集与数字证书

数字签名|数字证书

参考资料:

(MSDN)SignTool.exe(签名工具)

分享到:
 

作者:滴答的雨 
出处:http://www.cnblogs.com/heyuquan/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

欢迎园友讨论下自己的见解,及向我推荐更好的资料。 
本文如对您有帮助,还请多帮 【推荐】 下此文。 
谢谢!!!  (*^_^*)
技术群:185718116(广深莞·NET技术),欢迎你的加入
技术群:(.NET研发交流(桂林)),欢迎你的加入

 
http://www.cnblogs.com/heyuquan/archive/2012/04/01/2427974.html

SignTool.exe(签名工具)的更多相关文章

  1. [工具推荐]004.EXE签名工具SignTool使用教程

    数字证书,真是个神奇的东西,可以保证软件不被修改,可以表明文件的发布日期,最重要的,可以很大程度的减少杀毒软件的误报,当然,这就要使用可信任的机构颁发的证书了. 现在要说的不是申请证书,而是如何制作自 ...

  2. .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法

    阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我 ...

  3. 转载:.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法

    .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法 阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集 ...

  4. 【转】.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法

    阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我 ...

  5. iOS包重签名工具,ipa文件重签名,快速签名,SignTool签名工具,好用的签名工具,App重签名

    新工具 ProjectTool 已上线 这是一款快速写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift.Objecive-C双语言 QQ交流群:811715780 进入 Proje ...

  6. 使用signtool.exe来验证程序的数字签名是否成功(命令行)

    signtool.exe是微软提供的数字签名工具,使用如下 signtool verify /pa YourApplicationName

  7. signtool.exe not found

    When check the [sign the Xap File] checkbox, build project failed due to signtool.exe not found. Fol ...

  8. VS2010 将程序发布至网站时,发生错误“未能给 bin/Debug/publish//setup.exe 签名“

    VS2010 将程序发布至网站时,发生错误“未能给 bin/Debug/publish//setup.exe 签名“  错误:   因为某项目未能生成,所以无法发布. ---------------- ...

  9. java版MD5签名工具类

    package com.net.util; import java.security.MessageDigest; /** * MD5签名工具类 * @author zhangdi * */ publ ...

随机推荐

  1. 一个IT男的创业感言

    2014年的一月 我和高中的一个同学開始人生的第一次创业.就写点第一次创业的经验吧! 创业的最初 须要心中大概有个规划 这个规划可能是非常粗糙的 但大的方向一定要有.详细就是你进入的行业 行业已经存在 ...

  2. Windows Minifilter驱动 - 调式 (4)

    写不论什么程序动态调试是很重要的.驱动开发也不例外. 通常如今写驱动的时候,都是在VM上跑的,调试手段基本也是本地windbg + 虚拟机. 虚拟机配置 我用的是win7, 第一步,看以下.成功运行后 ...

  3. [转] linux中cat more less head tail 命令

    1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名. 比如: [root@localhost ~]# c ...

  4. 用Wget进行下载

    wget下载可以不用考虑资源的双向认证的问题,即 wget -N -S -O " + filePath + " " + urlStr + " --no-chec ...

  5. 《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理

    本节和<Android群英传>中的第3章Android控件架构与自定义控件详解有关系,建议先阅读该章的总结 第4章 View的工作原理 4.1 初始ViewRoot和DecorView ( ...

  6. NYOJ2括号配对问题

    括号配对是最基本的栈的问题,它是栈入门的经典题目,思路是,如果是左括号直接进栈,如果是右括号,这时就要比较栈顶的元素与他是否匹配,如果匹配则出栈,否则进栈,下面是代码的实现: #include < ...

  7. (转)PHP中extract()函数的妙用

    近日在看一个牛人的代码时,看到一个非常好用的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具,比方说,可以很方便的提取$_ ...

  8. 对DNSPOD添加域名解析的一些见解

    1.主机记录这步比较简单,输入“www”表示比较常规的域名例如www.abc.com,“@”表示abc.com,“ * ”表示泛解析,匹配所有*.abc.com的域名. 2.记录类型这步,一般常用A记 ...

  9. ajax页面数据的传递

    在上一篇文章中,简单提到了ajax的工作流程,那么在这里我们就得实战一回了,真正将ajax的用途展现出来,这一整套流程就是在页面上触发一个ajax事件,然后发送请求,紧接着到数据库读取数据,返回值,然 ...

  10. 键盘数字对应的ASCII码(keycode码)

    keycode 1 = 鼠标左键keycode 2 = 鼠标右键keycode 3 = Cancelkeycode 4 = 鼠标中键keycode 8 = BackSpace keycode 9 = ...