2016-06-15 5 views
1

アプリからいくつかの数値データを取得したいのですが、dbのようなファイルとして保存されていません。私はゲームの価値を変えるためのメモリハックアプリがいくつあるのか知っていますが、どのように動作するのかわかりません。 私は同様の機能を探していますが、何も変更する必要はありません。アンドロイドアプリからメモリデータを読み込む方法

私が書こうとしているアプリは、特定のアプリからいくつかのデータを読み込み、それに基づいていくつかのバックグラウンド計算を行います。これが不可能な場合は、画面を読み取って情報を取得する必要があります(たとえば、ピクセルの色を取得するなど)が、これは多くのデータを取得するための非常に面倒な作業です。

これを達成する方法はありますか?

ありがとうございました。

EDIT:私はこれにroot権限が必要だと思いますか?

+0

データを読み取るためにアクセスしたいアプリですか? –

+0

@Raptor私はどのように、私はここで尋ねたか分からなかった。関連するアイデアやどこを探すかは非常に役に立ちます。 – Seung

+0

@TedHoppはい、私が書き込もうとしているアプリはデータを読み込みます。他のサードパーティ製のアプリケーションから読み込まれたデータです。 – Seung

答えて

4

はい、root権限が必要です。さらに、ユーザーは完全に根付いた端末を持っている必要があります。 SuperSUやその他の近代的なSuアプリで、SELinuxの制限をほとんど取り除くことができます。 KNOXや他の同様のシステムと競合するかもしれませんが、私は本当にそれらについて知識がありません。

プロセスをデバッガとしてターゲットアプリケーションに接続し、メモリをスキャンして必要なデータを探し出す必要があります。これは複数の方法で行うことができます。参照するための最良のリファレンス実装はscanmemにあります。

root権限を必要とする実際の行為を実行するコードは、ターゲットプロセスメモリの読み書きは、suを介して実行されるネイティブの実行可能ファイルに存在します。その実行ファイルと通信するためのコードを書く必要があります(stdin/stdoutなどを介して)。

また、ターゲットアプリケーションのメモリレイアウトを自分で解析するコードを追加する必要があります。

また、ターゲットアプリケーションのメモリに小さなモジュールを挿入したり、アプリケーションのDexファイルを読み込んだりすることもできます(特に、ターゲットデータがJavaメモリに格納されている場合は便利です)。このアプローチには、仮想マシンのメモリレイアウトとのやりとりを最小限にするという利点がありますが、最初のDexファイルの読み込みを開始する必要があります。 Dexファイルがロードされたら、良い古いリフレクションAPIを使用して、Javaコードで残りの作業を行うことができます。このルートを使用すると、CRIUプロジェクトの一部として開発されているcompel libraryに、Linuxプロセスのメモリに実行可能なスニペットを注入するための(まともにサポートされている!)コードがあります。

+0

私は誠実にあなたを助けていますが、そこにある多くのメモリスキャナアプリケーションは、著者に適切なクレジットを与えなくてもオープンソースコード(特にスキャンムーム)を盗まれています。 scanmemのコードを使用する場合、少なくともあなたの作品のメモリスキャン関連の部分を他の人と共有することを検討してください。また、上記の方法は非常に一般的であることに注意してください。 Javaアプリケーションのみのサポートが必要な場合は、Android Accesibility APIまたはJavaリモートデバッグAPIを使用する方が良いでしょう(前者はルート権限なしでも使用されることがあります)。 – user1643723

+0

ありがとう、本当に助かります。このアプリは、私のためだけにプライベートになります。ニューラルネットワークで少し学習してコーディングしていて、実際のゲームに対して練習するのに適していると思った。私は入力データを得ることがニューラルネットワークの実際の部分に比べて大きな争いではないことを望みます。 – Seung

1

2つのAndroidプロセスは、メモリを共有できず、お互いに通信することはできませんしたがって、通信するためには、オブジェクトをプリミティブ(マーシャリング)に分解し、プロセスの境界を越えて転送する必要があります。

このマーシャリングを行うには、複雑なコードをたくさん書かなければならないため、AndroidはAIDL(Android Interface Definition Language)で処理します。

OPから、詳細はわかりませんので、キーワード「AIDL」を使用して読み込み/検索することをお勧めします。具体的なソリューションにリダイレクトされます。

+0

お返事ありがとうございます。今のところ、私は関連する部分は見ませんが、私が望んでいたことは私の欠点ではないと思います。私は読書を続けるでしょう:) – Seung

関連する問題