最新の記事アプリケーションアクティビティ、インテント、サービスについてデバイスAndroidでのデバイス制御について。地磁気センサ、加速度センサなどマルチメディアグラフィックス、音楽や動画再生などマルチメディア処理についてユーザインターフェースAndroidのユーザインターフェイスについて、またユーザインターフェイスを提供するコンポーネントの話題について。リソースAndroidでのアイコン、画像、文字列、ローカライゼーションなどHacksマッシュアップ開発環境Androidの開発環境など。KEYが利用されます。これら署名に基づいて、AndroidのOS側でインストールや更新確認が行われます。今回は、Androidアプリケーションの自己署名をアプリ自身で検証(Verify)する方法を紹介します。以下に紹介する内容は仕組みは簡単で完全ではありませんが、改ざん、再署名による二次配布対策として、カジュアルなアプリケーション改ざんには非常に有用な手段です。署名の検証以外にも意図しない使い方を防ぐ方法はいくつかあり、パーミッションの変更検出などがあります。@sys1yagiパーミッションに関しては、sys1yagiさんのサイトが詳しいのでそちらを参考にしてください。サンプルコードは続きからどうぞ。{e.printStackTrace();}}}少し長いですが、わかりやすさを優先して全体を掲載しました。KEYを登録してください。一度、サンプルアプリを実行させ、出力値をLogCatからコピー&ペーストすると良いでしょう。11行目:PackageManagerを取得します13,14行目:署名(シグネチャ)を取得するためPackageManager.GET_SIGNATURESを指定します21行目:SignatureクラスのtoCharsStringメソッドで署名を文字列として取得できます23行目:アプリケーションに組み込んだ自己署名と比較して再署名されていないか(=改変されていないか)を確認しますこのようにすると署名の検証ができますが、アプリケーションの改ざんに対して万全というわけではありません。署名のバイナリ値を鍵として検証コード自体を改変して検証をスキップされる可能性もあります(23行目のif文を無効化されても同様です)。本格的にターゲットとして狙われると十分でないことがわかります。改ざん防止はいたちごっこ的なところがあるのでバランスの問題といえるでしょう。再署名による2次配布など安易な改ざんは防げることは確かですので、アプリケーションにどこまでの防御策が必要かを考えた上で利用可否を決定すべきでしょう。以上、おつかれさまでした。Engineerだよ。Androidと組込とRe:VIEW。techbooster主宰。関する議論の土台となる本を」という著者陣の熱い思いから、ついにAndroidアプリ設計の決定版が登場!AndroidモダンプログラミングはKotlin&Gradleを特集した解説書です。Keynoteまとめ:現実にも検索を。TechBooster.TechBoosterについて。