.apkが抽出、変更、再パック、再署名された場合にフラグを立てる私のAndroidアプリのセキュリティを改善しようとしています。問題に言及しているZdnetの記事 link1 。
懸念されるのは、アプリがハッカーの標的になっている場合、悪意のあるコードを追加して別のアプリストアにアップロードし、ユーザーをだましてダウンロードさせる可能性があることです。
だから私はapkまたは署名証明書のチェックサムを検証するためのコードを考えていますか?
アプリコードを再パックしてセキュリティコードを削除できることを感謝しますが、再パックの難易度が高くなり、別のアプリを試すのに十分かもしれません。
[更新] Google Playストアのライセンスモジュールが同様のものを提供していることは知っていますが、有料アプリやその他/非マーケットプレイス向けのものを探しています。
最終的に Dexguard (Android用の有料難読化ツール)を使用しました。これは、apk検証を実行するモジュールを提供します。実装は簡単で、平均よりも優れた保護を提供します。
チェックを行うためのコードは次のとおりです。
dexguard.util.TamperDetection.checkApk(context)
主な問題は、apkのチェックサムをどこに保存して、交換できるかどうかを確認することです。 dexguardの方法は、ローカルでチェックすることですが、クラス/文字列の暗号化やAPIの非表示などの他の機能を使用すると、この呼び出しがわかりにくくなります。
ここにあなたを助けることができる記事のいくつかがあります。
Googleライセンスサービスを使用するPlayストアに接続して、ユーザーが数日ごとにアプリを購入したことを確認します。 (金額を設定できます)ProGuardも見てください。コードからすべてのクラス、メソッド、および変数名が削除されるため、逆コンパイルすると理解が非常に困難になります。