我对微软的SignTool.exe有一点小问题。我已经安装了Windows10SDK和办公室小口来支持macro enabled documents。然后我跟随readme激活dlls并做了所有的更改,包括:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA]
"Vbe71DllPath"="C:\Workspace\Signing\vbe7.dll"
MSOSIPX.DLL与REGSVR32wintrust.dll.ini并添加了以下内容:1
DLL=
GUID={6E64D5BD-CEB0-4B66-B4A0-15AC71775C48}
CryptSIPDllCreateIndirectData=_VBASipCreateIndirectData@12
CryptSIPDllGetSignedDataMsg=_VBASipGetSignedDataMsg@20
CryptSIPDllIsMyFileType2=_VBASipIsMyTypeOfFileName@8
CryptSIPDllPutSignedDataMsg=_VBASipPutSignedDataMsg@20
CryptSIPDllRemoveSignedDataMsg=_VBASipRemoveSignedDataMsg@8
CryptSIPDllVerifyIndirectData=_VBASipVerifyIndirectData@8
signtool sign /debug /n "Cert" /fd SHA256 test.xlsm和以下情况:SignTool错误:无法对此文件格式进行签名,因为它不被识别。
SignTool错误:试图签名时发生错误: test.xlsm
成功签名的文件数: 0
警告数: 0
错误数: 1
结尾的小纸条:
对于test.exe,它运行得很好。
发布于 2022-03-22 15:28:43
我通过使用regsvr32.exe而不是cmd来解决这个问题。
重要注意事项!,我在工作文件夹C:\Workspace\Signing中调用msosipx.dll上的regsvr32.exe。
我真不明白它为什么会起作用。
发布于 2022-08-01 06:11:12
我知道这个问题已经得到了解答,但我要补充一下我对其他人的意见。
我认为您不需要SIP模块路径的尖括号。按照维基百科,语法是key = value。所以我会用:
[1]
DLL=C:\Workspace\Signing\msosipx.dll还要确保您使用的是来自"C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86"的32位版本的签名工具。使用64位版本,我收到了与您相同的错误。但是,按照捆绑offsign.bat中的示例并使用正确的版本,它就可以工作了。
https://stackoverflow.com/questions/71528154
复制相似问题