1

重複の可能性:
Androidマーケットにアップロードされたアプリのキーストアを紛失しました

Androidアプリの新しいバージョンをGooglePlayストアにプッシュしていますが、アプリの現在のユーザーの更新をトリガーし、新しいバージョンとして扱わないようにしたいと考えています。もともと既存のアプリに署名するために使用された秘密鍵を持っていないので、それを回復するために次のことを試みています。

手順3に進むことはできますが、keytool -list -keystore my-signing-key.keystoreコマンドの.keystoreファイル名がわかりません。何かアイデアはありますか?

  1. まず、APKを解凍し、ファイル/META-INF/ANDROID_.RSAを抽出します(このファイルはCERT.RSAの場合もありますが、.RSAファイルは1つだけである必要があります)。
  2. 次に、次のコマンドを発行します。

    keytool -printcert-fileANDROID_.RSA次のような証明書のフィンガープリントを取得します。

    MD5:B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB SHA1:16:59:E7:E3:0C:AA:7A:0D :F2:0D:05:20:12:A8:85:0B:32:C5:4F:68署名アルゴリズム名:SHA1withRSA

  3. 次に、keytoolを再度使用して、署名キーストアのすべてのエイリアスを印刷します。

    keytool -list -keystore my-signing-key.keystore

エイリアスとその証明書のフィンガープリントのリストが表示されます。

android_key, Jan 23, 2010, PrivateKeyEntry,
Certificate fingerprint (MD5): B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB

出来上がり!これで、apkがこのキーストアとエイリアス「android_key」で署名されていると判断できます。

4

1 に答える 1

6

秘密鍵を保持する元のキーストアファイルがない限り、.apkからそれを抽出することはできません。.apkには、公開鍵と秘密鍵を使用して生成された署名のみが含まれますが、実際には秘密鍵自体は含まれていません。

これを考慮してください-.apkに実際の秘密鍵が含まれていて、それを抽出する手順が非常に簡単である場合、誰でもアプリからGoogle、Facebook、Microsoft、またはAmazonの秘密鍵を取得し、それを使用してマルウェアに署名できます。(AppleはAndroidソフトウェアを出荷していないため、このような攻撃の影響を受けません:-P)

したがって、前の.apkに署名するために使用された元のキーストアファイル(およびパスフレーズを知っている-@ 323goに感謝)にアクセスできない限り、運が悪いのではないかと心配しています。

于 2012-11-07T21:26:15.060 に答える