Androidのゲームをどうやって解析するか見たいなら、入ってみてください

オリジナルポスター: 2014000 ビュー: 715 返信: 4 で投稿される: 2012-05-11 14:11:03
AndroidのプログラムファイルはAPK形式で、APKファイルはAndroidの最終的な実行プログラムであり、Android Packageの略称です。SymbianオペレーティングシステムのsisファイルやJ2MEプラットフォームのJARファイルに似ています。APKファイルは実際にはZIPファイル形式ですが、拡張子がAPKに変更されています。RARで解凍すると、Dexファイルが見えます。DexはDalvik VM executesの略で、つまりAndroid Dalvik実行プログラムのことで、JavaのバイトコードではなくDalvikバイトコードです。

APKファイルの構造は次の通りです:
res/ 資源ファイルを格納するディレクトリ
META-INF/ Jarファイルによく見られます
resources.arsc コンパイルされたバイナリ資源ファイル、主にプログラムで使用される文字列です
AndroidManifest.xml プログラムのグローバル設定ファイル
classes.dex Dalvikバイトコードファイル、私たちの書いたJAVAファイルはDEX形式のバイトコードにコンパイルされています

まとめると、Androidがプログラムを実行する際、まずUnZipする必要があります。Symbianのように直接ではなく、Windows MobileのPEファイルとは異なります。この方法はプログラムの秘匿性や信頼性に対してあまり高くありません。dexdumpコマンドで逆コンパイルできますが、この方法は発展の流れに沿ったもので、MicrosoftのWindows GadgetsやWPFもこの構造を採用しています。

1.Javaファイル-----アプリケーションのソースファイル
これはAndroidと聞くと皆が思い浮かべるファイルでしょう。Android自体の大部分はJavaで書かれており(基本的に構造図の青色部分はJavaで開発されています)、Androidのアプリケーションは必ずJavaで開発する必要があります。

2.Classファイル-----Javaコンパイル後の対象ファイル
通常のJ2SEのように、Javaをコンパイルしてclassにすれば直接実行できますが、Androidプラットフォームではclassファイルは直接Android上で実行できません。Googleが独自のDalvikでアプリを実行するため、ここでのclassもSunのJava環境では実行できません。私個人の感覚では、Androidのclassファイルは実際にはコンパイル過程の中間ターゲットファイルであり、リンクしてdexファイルにすることで初めてDalvik上で実行可能となります。3. Dexファイル-----Androidプラットフォーム上の実行可能ファイル Android仮想マシンDalvikがサポートするバイトコードファイル形式 Googleは新しくリリースしたAndroidプラットフォームで独自のDalvik仮想マシンを使用して定義しました。この仮想マシンが実行するのはJavaバイトコードではなく、別のバイトコード、すなわちdex形式のバイトコードです。Javaコードをコンパイルした後、Androidプラットフォーム上のツールを使用してJavaバイトコードをDexバイトコードに変換できます。GoogleはDalvikをモバイル機器向けに作られたと述べていますが、多くの業界関係者はこれはSunにJavaライセンスを申し込むことを回避するためだと考えています。公開されている詳細が少ないため、現在Dalvikの具体的な実装は見つかっておらず、SDKに基づいていくつかの簡単な分析作業しか行えません。 このDalvik VMは携帯電話アプリ/CPUに最適化されており、多くのVMを同時に実行してもあまりリソースを消費しません。Dalvik VMのソースコードはまだダウンロードできる形では公開されていません(将来的にはシステム全体が公開される予定です)。現時点でGoogleの考えとしては、このSDKを使ってみんなにアプリ開発を始めてもらい、基盤部分については徐々に公開していくということです。 4. Apkファイル-------Android上のインストールファイル ApkはAndroidインストールパッケージの拡張子で、一つのAndroidインストールパッケージには特定のAndroidアプリケーションに関連するすべてのファイルが含まれています。apkファイルにはAndroidManifest.xmlファイル、アプリケーションコード(.dexファイル)、リソースファイル、その他のファイルが圧縮パックとしてまとめられます。一つのプロジェクトで生成できるのは一つの.apkファイルだけです。 どうやって解析するかは個人次第です。
返事 🤍 0 📤 共有 集める

返信 (4)

おそらく.dexにあります。
)╮(〉_〉")╭ トップ
理解できなかった!へへ
よく分からなかった。。
— すべての返信が読み込まれました —

返信を残す