【Android】ファイル抽出のメモ
実際に運用する際は自己責任でお願いします。
apkファイルの抽出
ESファイルエクスプローラからアプリを開き、メニュー→ライブラリ→アプリからアプリを選択し、バックアップを生成してPCに持っていきます。
apkファイルの解凍
拡張子を.zipに変更して解凍します。ズラズラとファイルが出てきます。
ソースコードの抽出
1. classes.dexをdex2jarを利用して解凍します。.jarファイルが生成されます。
dex2jar.bat (apk解凍先のパス)\classes.dex
2. 生成されたjarファイルの拡張子をzipに変更して解凍します。.classファイルが生成されます。
3. Java Decompilerを使用して.classファイルを開きます。
assetsファイルの解析
1. disunityを使用して以下のコマンドを実行します。
disunity.bat extract (apk解凍先のパス)\assets\bin\Data\*
2. フォルダが大量に展開されて非常に確認しにくいと思われますので、生成されたフォルダを全て適当なフォルダに移し、エクスプローラの検索機能を活用して目当てのファイルを表示させます。
例) .txt(ストーリー), .mp3(BGM/SE), .tga(テクスチャ)
cacheフォルダの抽出
(これ以降の動作にはRoot権限が必要です)
data/data/***(アプリ名)のフォルダをPCに持っていきます。
・cacheにはカードの画像やフィールドの画像などがあります。大体の人の目当てはコレでしょう。
・filesにはtips画像があります。
cache/webviewCacheChromiumのファイル表示
ファイル名がf_******となっているものは、拡張子を.pngに変えることで見ることができます。
中身はお知らせ欄などに表示されている画像です。
cache/assets46ファイルの解析
1. disunityを使用して以下のコマンドを実行します。
disunity.bat bundle-extract (抽出したフォルダ)\cache\assets46 disunity.bat extract (抽出したフォルダ)\cache\assets46\*
2. 「assetsファイルの解析」の2と同様に、検索機能を活用して目当てのファイルを探します。
各ファイルの位置
(app): apkを解凍したフォルダ
(appdata): Root権限を使用して引っ張ってきたキャッシュフォルダ
――――――――――――――――
スプラッシュ画像: (app)\assets\bin\Data\splash.png
メインストーリー: (app)\assets\bin\Dataのファイルをdisunityした後.txtで検索
テクスチャ: (app)\assets\bin\Dataのファイルをdisunityした後.tgaで検索
音声: (app)\assets\bin\Dataのファイルをdisunityした後.mp3で検索
カード/街背景画像: (appdata)\cache\
お知らせ画像: (appdata)\cache\webviewCacheChromium\ (拡張子を.pngに変更)
追加ストーリー: (appdata)\cache\assets46のファイルをdisunityした後.txtで検索
追加テクスチャ: (appdata)\cache\assets46のファイルをdisunityした後.tgaで検索
追加音声: (appdata)\cache\assets46のファイルをdisunityした後.mp3で検索
――――――――――――――――