如何使用PowerShell从已签名DLL中提取摘要算法?
获取DLL数字签名的摘要算法(PowerShell)
你之前用Get-AuthenticodeSignature配合Format-List没看到摘要算法,是因为这个信息藏在返回对象的嵌套属性里,默认的格式化输出不会展开这么深的层级。试试下面的方法:
方法一:分步查看
先获取签名对象,再深入访问摘要算法属性:
# 获取签名对象 $signatureObj = Get-AuthenticodeSignature "C:\Program Files\Application Verifier\vrfauto.dll" # 获取算法友好名称(比如SHA256) $signatureObj.Signature.DigestAlgorithm.FriendlyName # 或者获取算法的OID标识值(比如2.16.840.1.101.3.4.2.1) $signatureObj.Signature.DigestAlgorithm.Value
方法二:一行命令直接输出
如果想快速得到结果,可以把命令合并成一行:
(Get-AuthenticodeSignature "C:\Program Files\Application Verifier\vrfauto.dll").Signature.DigestAlgorithm.FriendlyName
为什么之前看不到?
Get-AuthenticodeSignature返回的AuthenticodeSignature对象里,Signature属性是一个CmsSigner类型的复杂对象,摘要算法的信息就存在这个对象的DigestAlgorithm属性中。默认的Format-List只会展示顶层属性,不会自动展开嵌套的深层对象,所以需要手动指定访问这些属性才能拿到你要的信息。
内容的提问来源于stack exchange,提问作者Brijesh Agrawal
相关产品推荐
相关产品推荐

