AndroidのAPKをリバースエンジニアリング

2016.06.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

まえがき

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にする

  1. 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を開く

スクリーンショット 2016-06-15 9.26.55