2

これは完全な「ノーノー」かもしれませんが、署名してapkにコンパイルした後、アプリケーションをデバッグ可能にすることは可能かどうか疑問に思いました。

サーバー上でランダムなキーを生成し、このキーを使用して、公開したアプリケーションをデバッグ可能な状態にできるようにしたいと思います。

//Build a hidden back door to request the randomly generated key on my server
//Input this key into an edittext box of some sort.
//Check this key against the server
//If key validates, put application in debuggable state.

これを行うことで潜在的なセキュリティリスクを認識していますが、それが可能かどうか疑問に思っていました。

4

2 に答える 2

1

再署名して再インストールする意思がある場合、デバッグ不可能な APK からデバッグ可能な APK を生成するのはかなり簡単ですが、既にインストールされているインスタンスに対してはそうすることができません。

デバッグ可能/デバッグ不可のステータスに基づいて異なる動作をする実際のコード内のものは、ブレントが示唆するように他のものを見ることもできますが、ほとんどのデバッグ機能はアプリケーション コードの一部ではなく Android に組み込まれているため、使用は制限されています。

ただし、デバッグ機能にフラグ条件付きの代替手段を提供できる場合があります。たとえば、プライベート ファイルをパブリック ストレージにコピーするための何かを提供できます。本当に必要な場合は、アプリケーション UID として実行されるシェルを提供するサーバーを組み込むことができます。しかし、実際の JDWP デバッガーを動作させるには、多くのシステム コードの独自のバージョンを提供する必要があるため、Android ビルドに依存する極端なハッカーが必要になる場合があります。

結局のところ、通常は抑制されている多くの内部詳細をログに記録して、プログラムの動作を変更するのは非常に簡単です。

ユーザーに対するセキュリティの意味について、少し時間をかけて考えてください。

于 2013-03-13T17:17:09.097 に答える
0

開発サイトを見るとgetApplicationInfo().flags;、特定のコンテキストからの呼び出しを介してフラグにアクセスできることがわかります。flagsではないfinalため、getApplicationInfo.flags |= FLAG_DEBUGGABLE;実行時にデバッグを有効にできるようです:ApplicationInfoドキュメントへの参照: http://developer.android.com/reference/android/content/pm/ApplicationInfo.html

注意してください、私はこれをテストしていません(瞬間のAndroid環境ではありません)。

于 2013-03-13T17:03:22.230 に答える