尝试重新打包APPX包时出现SignTool内部错误?

10

我正在分析现有的Windows Store应用程序,并对其进行修改以确保我的公司的混淆器可以与它们配合使用。

不过在这个过程中遇到了一些问题。我可以很容易地从商店获取APPX包(需要使用Fiddler获取URL)。然后,我只需要使用任何解压缩程序将appx文件提取到一个文件夹中。我可以在APPX中取出程序集并稍微修改IL代码。之后我重新制作并签名了这个包:

makeappx pack /d "mypackage" /p "mypackage.appx"
signtool sign /fd sha256 /f temporarykey.pfx mypackage.appx

然后我通过signtool收到一个错误:

SignTool Error: An unexpected internal error has occured
Error information: "Error: SignerSign() failed." (-2147024885/0x800700b)

然后当你尝试使用Visual Studio创建的用于安装/侧载任何APPX包的标准powerscript文件进行安装时,肯定会遇到错误。

Found package: C:\....mypackage.appx 
Error: The package is not digitally signed or its signature is corrupted

我已经按照这个过程为从Visual Studio生成的程序包签名。临时密钥是否与特定程序包相关联?我错过了什么?这是signtool中的一个错误吗?


"0x8007000b" 是一种格式错误。 (但是我不知道这个工具指示了什么。) - James McNellis
@JamesMcNellis 在这个工具中,显然意味着一个不匹配的证书。请看我的回答。 - Earlz
1个回答

13

显然,你不能随意选择临时密钥并使用它来签署APPX。特别地,证书主题行必须匹配(即“发布者名称”)。我不知道有什么更好的方法来确定主题行实际上应该是什么。首先,尝试使用signtool并使用任何临时密钥签署APPX文件。现在进入事件查看器,然后进入“应用程序和服务”,接着进入Microsoft,然后Windows,再进入AppxPackaging,最后进入Microsoft-Windows-AppxPackages/Operational。应该会有一个刚刚从该构建中发生的错误事件。检查一下。它应该会说些类似以下的内容:

Error 0x800700B: The app manifest publisher name (CN=random-hex-number) must match the subject name of the signing certificate (CN=MyWrongName)

所以,现在一定要记住那个随机的十六进制数。它需要成为证书的主题行并是错误的原因。要生成可用的证书:

makecert.exe mycert.cer -r -n "CN=random-hex-number" -$ individual  -sv private.pkv -pe -cy end
pvk2pfx -pvk private.pkv -spc mycert.cer -pfx mytemporarykey.pfx

现在,最终你应该拥有一个能够与 signtool 一起使用的临时密钥!

希望这个回答也能帮到其他人。


如果错误信息只是写在命令行上,那对用户来说就太简单了。非常感谢! - pi3
Windows 10似乎没有使用相同的事件查看器位置。我没有看到AppxPackaging部分,并且无法找到它可能在哪里。此外,我在事件查看器中发现的错误似乎完全不同:通过https://IFX-KeyId-29fe69630e853a4cd3575f84392a9bed2d7e8ca2.microsoftaik.azure.net/templates/Aik/scep进行的MYDOMAIN\MYCOMPNAME$的SCEP证书注册初始化失败:GetCACaps方法:GET(265ms) 阶段:GetCACaps 证书颁发机构无效或不正确0x80072f0d(WinHttp:12045 ERROR_WINHTTP_SECURE_INVALID_CA) - kayleeFrye_onDeck
这导致了这个错误:ERROR_WINHTTP_SECURE_INVALID_CA 12045,表示证书链已经被处理,但是在根证书处终止,而该根证书不被信任的信任提供者所信任(相当于CERT_E_UNTRUSTEDROOT)。来源:https://msdn.microsoft.com/en-us/library/windows/desktop/aa383770%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 - kayleeFrye_onDeck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接