记录一次对文件数字签名

有时候报毒,或是需要权限(比如 .sys驱动)需要文件加上签名的要求。

代码签名(Code signing)是对各类软件代码文件进行数字签名,以确认软件发行者身份并保证软件在签名后未被篡改,它使用数字证书来识别软件的发布商,使用哈希算法来确保软件的完整性。代码签名机制借助PKI密码技术及数字证书,规范了软件的发行,帮助开发者和最终用户建立安全信任的软件发布环境和使用环境。

Windows内核代码 .sys文件、ActiveX文件、 .exe 和 .dll 文件、Java Applets、J2ME MIDlet、Office宏文件等多种类型的文件,都需要进行软件代码数字签名。对软件代码文件部署数字签名不仅需要代码签名证书,还需要代码签名工具软件将数字签名嵌入到软件中。下面说下微软推出SignTool工具 

微软SignTool命令行工具

SignTool是微软提供的命令行工具,用于对软件代码进行数字签名,验证代码签名和时间戳。安装 Visual Studio 和 Windows SDK 时会自动安装此工具。要运行工具,可使用 Visual Studio 命令提示符或 Windows SDK 命令提示符(也称 CMD Shell)。您可以使用这些实用程序轻松运行工具,而不需要导航到安装文件夹。Signtool只能采用命令行方式进行代码签名,没有可视化引导界面,适合有命令行使用基础的用户。

 

先上传工具 签名工具

第一步 生成证书

makecert.exe -r -pe -ss Stweily -n "CN=Stweily" Stweily.cer

第二步  签名 (GDriver.sys是我需要签名的驱动文件 如果多个就是signtool sign /v /s Stweily /n Stweily A.sys B.sys      --空格分开

signtool.exe sign /v /s Stweily /n Stweily.itc.com GDriver.sys

特记录一下 方便以后使用

🧰 签名工具signtool.exe

参数含义
/a 自动选择系统中符合条件的证书进行签名(比如符合用途的第一个)
/f <文件> 指定证书文件(通常是 .pfx 文件)
/p <密码> 如果 .pfx 文件有密码,使用此参数提供
/csp <名称> 指定 CSP(加密服务提供者)名称,配合 Smart Card 等使用
/k <容器名> 指定私钥容器名称,用于指定特定证书
/n <主题名称> 按主题名称查找证书(通常是组织名或发行者名)
/r <颁发者> 限定按颁发者名称来筛选证书
/sha1 <指纹> 使用 SHA1 指纹指定证书(最精确)
/tr <URL> 指定 RFC 3161 时间戳服务器(现代推荐)
/t <URL> 指定旧式的 Authenticode 时间戳服务器
/td <算法> 指定时间戳使用的哈希算法(如 sha256
/fd <算法> 指定文件签名的哈希算法(如 sha256
/as 增量签名(用于多次签名同一个文件,比如嵌入多个签名)
/debug 显示调试输出信息
/v 输出详细信息(verbose)
/d <描述> 提供签名的说明文字
/du <描述 URL> 提供签名说明的网址链接
/s <store> 指定证书所在的存储区(Store),比如:My(当前用户的“个人”存储区)
/n <subject> 根据主题名称查找证书(如:公司名或证书显示名称)
/sha1 <thumbprint> 根据 SHA1 指纹查找证书
/sm 表示从本地计算机级的存储区中查找(默认是当前用户)
posted @ 2025-04-16 09:40  stweily  阅读(85)  评论(0)    收藏  举报