apkを逆コンパイルする方法

androidstudio AndroidStudio
スポンサーリンク

はじめに

ふと「.apk」ファイルのデコンパイルってどうやるんだろうと気になったのでまとめます。

環境

  • 2022/3/7日 現在
  • Windous 11 Pro 21H2
  • Android Studio Bumblebee | 2021.1.1 Patch 2
  • dex2jar-2.1 v2.1
  • JD-GUI jd-gui-1.6.6

全体の流れ

  1. 「.apk」から「dex2jar.jar」に変換
  2. 「dex2jar.jar」から「.java」を見る形になります。

例として今回は作成した「app-debug.apk」のファイルを見ていきたいと思います。

「.apk」から「dex2jar.jar」に変換

「.apk」を「dex2jar.jar」に変換するのに今回は「dex2jar」と言うツールを使っていきたいと思います。

1.「dex2jar」を下記サイトからダウンロードします。(開発者さんありがとう!!!)

GitHub - pxb1988/dex2jar: Tools to work with android .dex and java .class files
Tools to work with android .dex and java .class files - pxb1988/dex2jar

1.1.右側の「v2.1」(Latest)をクリックします。

1.2.「dex2jar-2.1.zip」をクリックするとダウンロードが始まります。

2.ダウンロードフォルダに「dex2jar-2.1.zip」がダウンロードされたので「dex2jar-2.1.zip」を解凍します。(今回はわかりやすくデスクトップに移動させます。)

3.解凍した「dex2jar-2.1」の中に「dex-tools-2.1」がありその中に「d2j-dex2jar.bat」がある事を確認します。今回は「d2j-dex2jar.bat」を使って変換していきます。

4「.apk」と「d2j-dex2jar.bat」のパス確認をしていきます。

「app-debug.apk」 C:\Users\User名\Desktop\app-debug.apk

「d2j-dex2jar.bat」 C:\Users\User名\Desktop\dex2jar-2.1\dex-tools-2.1\d2j-dex2jar.bat

※User名はPCの環境に合わせてください

5.「.bat」ファイルをコマンドプロンプトから実行していきます。

5.1.「Windowsキー」+「Sキー」を押して出てきた検索メニューに「ko」と入力するとコマンドプロンプトが出てくるのでクリックし開きます。

6.コマンドプロンプトに

「Desktop\dex2jar-2.1\dex-tools-2.1\d2j-dex2jar.bat Desktop\app-debug.apk」

と入力します。

Enterを押して数秒待っていると

「dex2jar Desktop\app-debug.apk -> .\app-debug-dex2jar.jar」

と表示されれば成功です!

※「‘java’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示された場合はJDKが登録されていないので登録する必要があります。

JDKのセットアップ方法(下方にジャンプします)

7.「C:\Users\User名\app-debug-dex2jar.jar」ができました!

「dex2jar.jar」から「.java」を参照

「dex2jar.jar」を「.java」を確認するのに今回は「jd-gui」と言うツールを使っていきたいと思います。

1.「jd-gui」を下記サイトからダウンロードします。(開発者さんありがとう!!!)

Java Decompiler
JD Java Decompiler

2.「Download」をクリックしタブを切り替えます。

3.「jd-gui-1.6.6.jar」をクリックするとダウンロードが始まります。

4.ダウンロードした「jd-gui-1.6.6.jar」をダブルクリックして開き左上の「File」から「Open File…」で先程の「app-debug-dex2jar.jar」を選択し開くことでソースの確認を行えます!

5.無事参照することができました!

元データは下記になります。問題なく確認することができました!

以上です!ありがとうございました!下記はJDKが認識しなかった場合の手順になります。

スポンサーリンク

JDKを認識させる方法

筆者の場合AndroidStudioがインストールされているのでAndroidStudioのJDKを設定することで認識させることができます。

JDKのパスを設定しなければいけないのですがAndroidStudioのJDKがある場所をAndroidStudioで表示させていきたいと思います。

1.AndroidStudioを起動し左上にある「ファイル」→「設定」を選択

2.設定画面が開いたら「ビルド、実行、デプロイ」→「ビルドツール」→「Gradle」の順で開いていき「Gradle JDK:」に表示されているパスをエクスプローラで開いていきます。

3.「Windowsキー」+「Eキー」を押した後「Gradle JDK:」に表示されているパスをエクスプローラで開いていきます。※下記は筆者の例になります。

「PC」→「C:」→「Program Files」→「Android」→「Android Studio1」→「jre」→「bin」

binまでのパス「C:\Program Files\Android\Android Studio1\jre\bin」

3.1.下図の空白の部分をクリックするとパスが出せるのでコピーをしてメモして置こう!

「bin」までのパスを指定すればOKなので次は指定する設定を開いていきます。

4.左下のWindowsマークを右クリックして「システム」を選択

5.「システムの詳細設定」を選択

6.「環境変数(N)…」を選択

7.下図の変数に「PATH」が無い場合は「新規(N)…」をある場合は「編集(E)…」を選択

8.「変数名」の部分には「PATH」と入力し「変数値」には先程メモっておいた「C:\Program Files\Android\Android Studio1\jre\bin」とパスを指定し「OK」をクリック

9.「PATH」が追加された事を確認し「OK」を選択し閉じます。※「OK」を押さないと反映されないです。コマンドプロンプトも開き直しましょう。

これで設定されたので次に進めるはずです。

元の位置に戻る

コメント

  1. アバター Sherilyn Abram より:

    Hey there just wanted to give you a quick heads up. The words in your content seem to be running off the screen in Opera. I'm not sure if this is a formatting issue or something to do with browser compatibility but I thought I'd post to let you know. The design look great though! Hope you get the problem resolved soon. Many thanks|

    https://vimeo.com/sejersenvelez0

    • アバター kanki2kei より:

      Thanks for your comment!
      There was no problem in my "Opera" environment…

      ありがとう!
      筆者の「Opera」環境では問題ありませんでした…

  2. アバター Irish Sixon より:

    Awesome issues here. I'm very glad to see your article. Thank you a lot and I'm having a look ahead to touch you. Will you please drop me a e-mail?|

    https://adi.com.ng/members/ford44ford/activity/568300/

タイトルとURLをコピーしました