AndroidのAPKをリバースエンジニアリング
まえがき
APKをリバースエンジニアリングでclassでよめるようにする。
他のapkを読むというより、ProGuardが正しくかかっているのか、
どういう変換されているのか知るために目的でリバースエンジニアリングを行う。
準備
AndroidのNew ProjectからEmpty ActivtyでAndoid Projectを作成
Android Studioで▶(run)をして、APKを作成する
コマンドの場合:
./gradlew clean assembleDebug
以下にパスにAPKが作成させている
(ProjectRoot) app/build/outputs/apk/app-debug.apk
ソースコードのリバースエンジニアリングの仕方
先ほどの作成したAPKをZIP解凍する
手持ちのZIP解凍ソフトで解凍してください
コマンドの場合:
unzip app/build/outputs/apk/app-debug.apk
解凍されたファイルの中にclass.dexがあるので、dex2jarでjarにする
- http://sourceforge.net/projects/dex2jarからdex2jarをDLし、ZIP解凍する
(2解凍したフォルダ以下すべてのファイルに実行権限を付与する
chmod +x *
余談:/usr/local/binなどに入れておくと便利
2.dex2jarを使って dexをjar変換する
さきほどapkを解凍した際にできたclass.dexをdex2jarにjarに変換する
(解凍したフォルダ)/d2j-dex2jar.sh class.dex
class-dex2jar.jarが作成される
dex2jarで作成したjarファイルをJD-GUIで読む
1.http://jd.benow.ca/よりJD-GUIをDLし、解凍する
2.JD-GUIを起動し、class-dex2jar.jarを開く