Androidアプリを開発しており、それを公開する予定です(有料アプリ)。非常に簡単に海賊版になると聞きましたAndroidアプリ(あなたの経験やあなたの知っていること、私のアプリのセキュリティをどのように高めることができるのか疑問に思っていましたか?違法に共有できるアイデア、経験、コメントはありますか?
Android用の無料のマルウェア対策アプリをリリースしました。ハッキングされたユーザーがいないことを確認して、その成功に不可欠でした。 Androidマーケットのアプリに対する最大の脅威は、ソースコードの漏洩、有料アプリのコピー/配布、キーの再生成などです。それぞれを説明し、それらを解決する方法を説明します。
まず、 このペーパー は、コンパイルされたコードを解凍してソースコードを表示することにより、Androidアプリケーションをリバースエンジニアリングする方法を説明しています。これを防ぐことはできません。期間:意志を持った人は、apkのコピーを入手した場合、いつでもソースコードを見ることができます(ルート化された携帯電話で簡単に入手できます)良いニュースは、コードの重要な部分を難読化して、 Proguard は、Androidによって提供されるツールで、パッケージ化中にコードを難読化(読みにくくする)できます。重要なコードがただし、すべての脆弱なメソッドまたは変数を、Activity
、Service
、またはBroadcastReceiver
以外のファイルに移動する必要があります。詳細については、ドキュメントを参照してください。 。
アプリケーションの不正コピーと配布を防ぐために、Google Playではいくつかの ライセンスオプション を提供しています。残念ながら、LVLは完全に安全でもありません。それをクラックする方法(Google Playより前)の詳細なHOW-TOが利用可能です here 。
最後に、上記のリンクされた論文、および多数の学術記事とオンラインブログでは、ソースコード(または難読化されたソースコード)がリークされた後、独自の悪意のあるコードの一部を追加し、アプリを辞任する方法について説明しています。 Androidマーケット。ここでの良いニュースは、あなたのAndroidライセンスキーのパスワードが簡単に推測できる場合、または誰かに渡す場合はそうしないと、攻撃者は同じライセンスキーを使用してアプリケーションを公開できなくなります。これにより、非難から保護されるだけでなく、悪意のあるアプリケーションが元のアプリケーション(SharedPreferences
)。
全体として、アプリケーションを著作権侵害から本当に保護する最良の方法は、Proguard、Googleを正しく構成して使用することですLicensureを再生し、非常に安全なライセンスキーで最終的なAPKに署名します。
改ざんチェックと難読化を組み合わせて追加し、アプリが海賊版になった場合にユーザーに警告する/機能を無効にする/サーバーに報告することができます。 DexGuard を使用して、難読化を強化します。
改ざんチェック
update:この質問に答えて以来、改ざん検出に関するより多くの 詳細な記事 を書きました。
google Playライセンスフレームワークをご覧ください。
http://developer.Android.com/guide/market/licensing/index.html
これが最良の選択です。
Google Playライセンスは、アプリケーションが現在のデバイスユーザーにライセンスされているかどうかを判断するために、アプリケーションが信頼できるGoogle Playライセンスサーバーに照会できるネットワークベースのサービスです。ライセンスサービスは、Google Playライセンスサーバーの機能に基づいており、特定のユーザーが特定のアプリケーションを使用するライセンスを持っているかどうかを判断します。 Google Playは、ユーザーがアプリケーションの記録された購入者である場合、ユーザーはライセンスされていると見なします。