Das neueste Update von Google Maps ist in meinem Land nicht verfügbar. Daher habe ich eine Version heruntergeladen, indem ich für "Google Maps 5.4.0 apk" googelt habe. Ich habe es tatsächlich gefunden, aber jetzt frage ich mich, wie ich feststellen kann, ob dies tatsächlich die gleiche Version wie auf dem Markt ist.
Wie kann ich sicher sein, dass es nicht manipuliert wurde? Sind Apps in irgendeiner Weise signiert? Gibt es eine Möglichkeit, die Signaturen zu überprüfen?
m.google.com/maps
sie Ihnen einen Download-Link oder ähnliches?Antworten:
Abgesehen von der Debatte über die Legitimität der Installation dieser App auf Ihrem Telefon ist die Frage der Überprüfung eine, die ich schon seit einiger Zeit verstehen möchte, und Sie haben mich aufgefordert, einen möglichen Weg zu finden, um zu überprüfen, wer signiert hat eine apk.
Android - Apps werden auf normale Weise von .jar - Dateien signiert (APK ist wirklich nur ein besonderes .jar die nur eine spezielle .zip ist) aber es kann nicht trivial sein zu verfolgen , um die Echtheit der Zertifikate , wenn Sie etwas gewusst haben gut vergleichen mit. Das ist im Grunde genommen das, was das Telefon selbst tut - es überprüft, ob es sich um etwas handelt, das angeblich von derselben Partei stammt wie etwas, das sich bereits auf dem Telefon befindet. Das Telefon weigert sich nicht, Dinge mit unbekannten Unterzeichnern zu installieren, sondern kann nur (Einwände gegen / Löschung von Anwendungen) Daten von offensichtlichen Fälschungen, wenn etwas Neues nicht mit etwas Altem übereinstimmt, von dem es behauptet, dass es es sei.
Sie benötigen Jarsigner und Keytool. Ich glaube, diese stammen aus dem JDK, das eine Voraussetzung für das Android-SDK und nicht für das SDK selbst ist.
Versuchen Sie zunächst, den in der APK-Datei enthaltenen öffentlichen Schlüssel zu überprüfen. Normalerweise ist dies in META-INF / CERTS.RSA, aber es kann sich auch in einer anderen Datei befinden - unzip -l wird es Ihnen mitteilen. Sie möchten sehen, was Sie darüber herausfinden können:
Das wird eine Menge Informationen darüber verbreiten, wer der Unterzeichner zu sein vorgibt. Einige Zertifikate sind anscheinend selbst von bekannten Parteien signiert, aber ohne herauszufinden, wie man das nachvollziehen kann, vermute ich, dass Sie so etwas tun könnten:
Wenn Sie eine bekannte vertrauenswürdige apk des gleichen Autors haben, der das gleiche Zertifikat verwendet. Ich gehe davon aus, dass die Zertifikate mit der gleichen MD5-Summe ausreichen.
Angenommen, Sie haben sich dafür entschieden, dem Zertifikat zu vertrauen, können Sie feststellen, ob alle Dateien in der APK-Datei damit signiert wurden
(Wenn sich mehr als eine .RSA-Datei im Archiv befindet, sollten Sie das Flag -certs hinzufügen, um anzugeben, welche Zertifikate zum Signieren der einzelnen Dateien verwendet wurden, damit Sie sicher sein können, dass es sich um das von Ihnen verifizierte Zertifikat handelt.)
quelle
Es gibt (jetzt) ein
apksigner
Werkzeugbuild-tools
, das macht, was Sie wollen. Aus den Dokumenten :quelle
Sie können auch versuchen, die APK auf den kostenlosen VirusTotal.com- Virenscanner hochzuladen . Es wird ein eindeutiger Hash für die APK generiert, und wenn andere ihn bereits hochgeladen haben, um ihn zu testen (sehr wahrscheinlich), haben Sie eher eine Vorstellung davon, dass die APK gültig ist.
Der Dienst scannt die APK auch mit über 60 Virenscannern und teilt Ihnen mit, ob er der Ansicht ist, dass sie ähnliche Signaturen wie bereits gefundene Viren aufweist.
quelle
Um Zertifikate aus einer verdächtigen Apk-Datei zu vergleichen, können Sie die Version im offiziellen Play Store Ihres Telefons herunterladen, eine Sicherungskopie auf Ihrem Computer erstellen und das Sicherungsverzeichnis aufrufen, die betreffende Apk-Datei auswählen und dieselben Überprüfungen durchführen. Sie können die Google-Zertifikate auch anzeigen, indem Sie eine Standardanwendung für ein Gerät überprüfen (wie jede andere com.google.android. * Apk).
quelle