Sigcheck可深度验证Windows文件签名真实性,包括证书链完整性、时间戳可信度、增强密钥用途匹配性及吊销状态,需用官方sigcheck64.exe配合-i/-n/-v等参数实现精准检测。

你需要确认一个 Windows 系统文件(比如 svchost.exe、winlogon.exe 或某个第三方驱动)是否被真实签名、证书是否有效、时间戳是否可信,而不是只看“有签名”就放松警惕——Sigcheck 能一次性输出签名状态、证书链层级、时间戳存在性、哈希值和 Verified 字段,比右键属性更底层、更防误导。
下载并准备 Sigcheck 工具
访问微软官方 Sysinternals 页面,下载最新版 Sysinternals Suite 压缩包(不是单个 sigcheck.exe),解压后找到 sigcheck64.exe(64位系统必须用这个,32位系统用 sigcheck.exe)。不要从非官网渠道获取,否则你验证的就不是原文件,而是已被篡改的 Sigcheck 本身。
将 sigcheck64.exe 所在目录添加到系统 PATH,或直接把要检查的文件拖进该目录下操作——路径含空格时务必用英文双引号包裹。
基础单文件验证:一眼识别签名真伪
以检查 C:\Windows\System32\drivers\nvlddmkm.sys 为例:
打开 PowerShell(无需管理员权限),执行:
sigcheck64 -i "C:\Windows\System32\drivers\nvlddmkm.sys"
-i 参数强制显示签名者名称,避免只看到 Publisher: Microsoft Windows 而忽略实际是“Microsoft Windows Hardware Compatibility Publisher”还是“NVIDIA Corporation”。若输出中 Verified 字段为 Signed,且 Timestamp 显示有效日期(如 “Timestamp: 2026-05-18 14:22:03”),才说明签名未被剥离、时间戳可追溯;若显示 “Timestamp: Not timestamped”,则签名可能在证书过期后才添加,无法抗回滚攻击。
深度验证:揪出证书链漏洞与吊销风险
仅靠 Verified: Signed 不够。真正高危的是证书链断裂、用途不匹配或已被吊销:
第一步:运行命令导出完整证书信息
sigcheck64 -i -n -q "C:\path\to\file.exe" > cert_detail.txt
第二步:打开 cert_detail.txt,定位 “Certificate Chain” 区块,逐层检查每级证书的 “Status” 是否均为 OK;若某一级显示 “Revoked by issuer”,该签名即不可信,哪怕 Verified 显示 Signed —— 因为 Sigcheck 默认不实时查 OCSP/CRL,需人工比对或配合 -v 参数输出 CSV 后用脚本校验。
第三步:重点核对 “Enhanced Key Usage” 字段,驱动类文件(.sys)必须包含 Kernel Mode Code Signing (1.3.6.1.4.1.311.10.3.6),普通应用只需 Code Signing (1.3.6.1.5.5.7.3.3)。缺少对应 OID 的签名,在 Win11 启用 HVCI(基于虚拟化的安全)时会被直接拦截加载。
批量筛查可疑文件:快速定位未签名或异常签名
方法一:扫描整个 System32 目录,只列出未签名文件
sigcheck64 -u -e C:\Windows\System32 > unsigned_list.txt
方法二:找出所有签名但证书已过期的文件(需结合当前时间 2026-10-23 判断)
sigcheck64 -s -e C:\Windows\System32 | findstr /i "expires 2025 2024 2023"
方法三:导出 CSV 格式供 Excel 筛选(含 SHA256 哈希,可用于与 VirusTotal 对照)
sigcheck64 -v -e C:\Tools\MyApp\*.exe > app_hashes.csv
注意:-e 参数强制只扫描可执行映像,避免误判 .txt 或 .log 文件;若漏加此参数,Sigcheck 会跳过非 PE 文件并静默失败,不会报错提示。











