はい、root権限が必要です。さらに、ユーザーは完全に根付いた端末を持っている必要があります。 SuperSUやその他の近代的なSuアプリで、SELinuxの制限をほとんど取り除くことができます。 KNOXや他の同様のシステムと競合するかもしれませんが、私は本当にそれらについて知識がありません。
プロセスをデバッガとしてターゲットアプリケーションに接続し、メモリをスキャンして必要なデータを探し出す必要があります。これは複数の方法で行うことができます。参照するための最良のリファレンス実装はscanmemにあります。
root権限を必要とする実際の行為を実行するコードは、ターゲットプロセスメモリの読み書きは、suを介して実行されるネイティブの実行可能ファイルに存在します。その実行ファイルと通信するためのコードを書く必要があります(stdin/stdoutなどを介して)。
また、ターゲットアプリケーションのメモリレイアウトを自分で解析するコードを追加する必要があります。
また、ターゲットアプリケーションのメモリに小さなモジュールを挿入したり、アプリケーションのDexファイルを読み込んだりすることもできます(特に、ターゲットデータがJavaメモリに格納されている場合は便利です)。このアプローチには、仮想マシンのメモリレイアウトとのやりとりを最小限にするという利点がありますが、最初のDexファイルの読み込みを開始する必要があります。 Dexファイルがロードされたら、良い古いリフレクションAPIを使用して、Javaコードで残りの作業を行うことができます。このルートを使用すると、CRIUプロジェクトの一部として開発されているcompel libraryに、Linuxプロセスのメモリに実行可能なスニペットを注入するための(まともにサポートされている!)コードがあります。
データを読み取るためにアクセスしたいアプリですか? –
@Raptor私はどのように、私はここで尋ねたか分からなかった。関連するアイデアやどこを探すかは非常に役に立ちます。 – Seung
@TedHoppはい、私が書き込もうとしているアプリはデータを読み込みます。他のサードパーティ製のアプリケーションから読み込まれたデータです。 – Seung