【Android】apkを逆コンパイルしてJavaのソース、XMLを取り出してみる
参考
AndroidのAPKを逆コンパイルする - Qiita
http://sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download
Apk decompile error: d2j-dex2jar command not found - Stack Overflow
Error when brew updating, unable to unlink old README.md? · Issue #2906 · Homebrew/homebrew · GitHub
Jad(Javaの逆コンパイラ)で僕にもソースが見えるの巻 - tanamonの日記
Macでjarの中身を全部デコンパイルする | hacknote
brew tapとは - Qiita
brewのアップデート(brew update)に失敗してしまったので対処する - F13
1つ目の記事にあるように流れは
apkファイルからdexファイルを取り出す
dexファイルをjarファイルに変換する
jarファイルからclassファイルを取り出す
classファイルをjavaファイルに変換する
という流れらしい。
◼︎apkファイルからdexファイルを取り出す
unzip ~~.apk
apkファイルはzipファイルだからunzipすれば簡単にdexファイルを取り出せた。
◼︎dexファイルをjarファイルに変換する
~/tools/dex2jar-2.0/d2j-dex2jar.sh classes.dex
◼︎jarファイルからclassファイルを取り出す
unzip classes-dex2jar.jar
◼︎classファイルをjavaファイルに変換する
- 指定のファイルをjavaファイルに変換
jad -s java -d src -r classes.class
- 指定のディレクトリ以下の当てはまるファイルを変換する
jad -s java -d src -r classes\**\*.class
classファイルをjavaファイルに変換するのところでハマったのでメモ。
参考記事1つ目の
JAD Java Decompiler Download Mirror
ここからJava Decompilerをインストールして解凍したjadを利用しようとしたが、
jad: command not found
と何回も出てしまった。これは4つ目のリンクのalexchさんの回答で解決。
homebrewをupdateしてからjadをinstallして実行するとうまくいった。