2012-09-24 4 views
10

Ich analysiere bestehende Windows Store-Anwendungen und modifiziere sie, um sicherzustellen, dass der Obfuscator meines Unternehmens mit ihnen arbeitet.SignTool interner Fehler beim Versuch, ein APPX-Paket neu zu verpacken?

Ich habe jedoch ein kleines Problem dabei. Ich kann einfach ein APPX-Paket aus dem Laden holen (erfordert Fiddler, um die URL zu erhalten). Ich kann dann einfach jedes entpacken Programm verwenden, um die appx in einen Ordner zu extrahieren. Ich kann dann die Assemblies in der APPX nehmen und die IL ein wenig modifizieren. Ich habe dann ein Remake und das Paket unterschreiben:

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

ich dann allerdings einen Fehler mit Signtool erhalten:

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

Und dann natürlich einen Fehler, wenn sie versuchen es mit der Standard-Powerscript-Datei erstellt zu installieren Visual Studio zum Installieren/Laden eines beliebigen APPX-Pakets.

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

Ich habe diesen genauen Prozess für Pakete aus Visual Studio verwendet. Sind temporäre Schlüssel an ein bestimmtes Paket oder etwas gebunden? Was vermisse ich? Ist das ein Bug in signtool?

+0

'0x8007000b' ist ein fehlerhafter Formatfehler. (Ich habe keine Ahnung, was das mit diesem Tool anzeigt.) –

+0

@JamesMcNellis in diesem Tool bedeutet es anscheinend ein nicht übereinstimmendes Zertifikat. Siehe meine Antwort – Earlz

Antwort

13

Also anscheinend können Sie nicht einfach einen temporären Schlüssel nehmen und die APPX damit signieren. Insbesondere müssen die Betreffzeilen des Zertifikats übereinstimmen (der "Name des Herausgebers"). Ich kenne keinen besseren Weg, um zu bestimmen, was die Betreffzeile eigentlich so bloß mit mir meint. Versuchen Sie zunächst, signtool zu verwenden und die APPX-Datei mit einem beliebigen temporären Schlüssel zu signieren. Gehe jetzt zur Ereignisanzeige. Dann zu Anwendungen und Diensten und dann zu Microsoft und dann zu Windows und dann zu AppxPackaging und schließlich zu Microsoft-Windows-AppxPackages/Operational. Es sollte ein Fehlerereignis sein, das gerade von diesem Build passiert ist. Prüfen Sie. Es sollte etwas sagen wie

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

So, jetzt sicher, hängen an diese Zufalls-hex-Nummer. Dies muss die Betreffzeile des Zertifikats sein und ist die Ursache des Fehlers. Um ein Arbeitszertifikat zu erzeugen:

Jetzt endlich sollten Sie einen temporären Schlüssel haben, der mit signtool funktioniert!

Hoffentlich dient diese Antwort anderen Menschen gut.

+0

... wäre für die Benutzer zu einfach, wenn der Fehler in der Befehlszeile geschrieben würde ... Vielen Dank! – pi3

+0

Windows 10 scheint nicht dieselben Ereignisanzeigeorte zu verwenden. Ich sehe keinen 'AppxPackaging'-Bereich und konnte nicht feststellen, wo er sich befindet. Außerdem scheint der Fehler, den ich in der Ereignisanzeige gefunden habe, völlig anders zu sein: SCEP-Zertifikat-Registrierungsinitialisierung für MYDOMAIN \ MYCOMPNAME $ über https://IFX-KeyId-29fe69630e853a4cd3575f84392a9bed2d7e8ca2.microsoftaik.azure.net/templates/Aik/scep fehlgeschlagen: GetCACaps Methode: GET (265ms) Stage: GetCACaps Die Zertifizierungsstelle ist ungültig oder falsch 0x80072f0d (WinHttp: 12045 ERROR_WINHTTP_SECURE_INVALID_CA) –

+0

Das hat mich dazu führen: ERROR_WINHTTP_SECURE_INVALID_CA Zeigt an, dass eine Zertifikatskette verarbeitet wurde, sondern in einem beendet Stammzertifikat, das dem Vertrauensanbieter nicht vertraut (entspricht CERT_E_UNTRUSTEDROOT). Von: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383770%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 –

Verwandte Themen