APKファイルからソースコードを取得する方法はありますか?


1262

ラップトップのハードドライブがクラッシュし、過去2か月間取り組んでいたアプリのすべてのソースコードが失われました。私が持っているのは、友人に送信したときから私のメールに保存されているAPKファイルだけです。

このAPKファイルからソースコードを抽出する方法はありますか?



11
これは、WhatsappやFacebookなどの数百万ドル相当のアプリのソースコードを入手できることを意味しますか?これはすべてオープンソースですか?
ファイザン、2015年

3
@ファイザンはプロガードについて聞いたことがありますか?
Vishwajit Palankar

1
質問のフレージングには、無関係なライフストーリーのヒントが含まれているため推奨ツールとして解釈される場合があります。それでも、答えは潜在的にjavac -decompileである可能性があり、SOガイドラインに適合します。回答はトピックではなく、質問ではないように見えます。
SwiftArchitect 2016

2
、この記事で、彼らはどのようにリバースエンジニアポケモンゴー説明
アンダース

回答:


1569

簡単な方法:オンラインツールhttp://www.javadecompilers.com/apkを使用し、apkをアップロードしてソースコードを取得します。


.apkファイルをデコードする手順、段階的な方法:

ステップ1:

  1. 新しいフォルダを作成し、デコードする.apkファイルをコピーします。

  2. 次に、この.apkファイルの拡張子の名前を.zipに変更し(たとえば、filename.apkからfilename.zipに名前を変更)、それを保存します。これで、classes.dexファイルなどにアクセスできるようになります。この段階では、ドローアブルは表示されますが、xmlおよびjavaファイルは表示されません。続行してください。

ステップ2:

  1. 次に、この.zipファイルを同じフォルダ(またはNEW FOLDER)に抽出します。

  2. dex2jarをダウンロードをして、同じフォルダー(またはNEW FOLDER)に抽出します。

  3. classes.dexファイルをdex2jarフォルダーに移動します。

  4. 次に、コマンドプロンプトを開き、ディレクトリをそのフォルダー(またはNEW FOLDER)に変更します。次に書き込みますd2j-dex2jar classes.dex(Mac端末またはUbuntu書き込みの場合./d2j-dex2jar.sh classes.dex)、Enterを押します。これで、同じフォルダーにclasses.dex.dex2jarファイルが作成されました。

  5. Java逆コンパイラをダウンロード、jd-guiをダブルクリックし、開いているファイルをクリックして、そのフォルダーからclasses.dex.dex2jarファイルを開きます。これでクラスファイルが取得されます。

  6. これらのクラスファイルをすべてsrc名で保存します(jd-guiでは、[ファイル]-> [すべてのソースを保存]をクリックします)。この段階でJavaソースを取得しますが、.xmlファイルはまだ読み取れません。続行してください。

ステップ3:

別の新しいフォルダを開きます

  1. デコードしたい.apkファイルを入れてください

  2. apktool および apktoolインストールウィンドウの最新バージョンをダウンロード(どちらも同じリンクからダウンロードできます)、同じフォルダーに配置します。

  3. コマンドウィンドウを開く

  4. 次のようなコマンドを実行しapktool if framework-res.apkます(それがない場合は、ここ取得します)。

  5. apktool d myApp.apk (myApp.apkは、デコードするファイル名を示します)

これで、そのフォルダーにファイルフォルダーが作成され、apkのxmlファイルを簡単に読み取ることができます。

ステップ4:

手順はありません。両方のフォルダ(この場合は両方の新しいフォルダ)の内容を1つのフォルダにコピーするだけです

そして、ソースコードをお楽しみください...


26
@prankulgarg、ステップ3のポイント5で、次のエラーが発生します。jarfileE:\ apktojava \ testt \\ apktool.jarにアクセスできません

55
cmdでdex2jar classes.dexを記述する代わりに、d2j-dex2jar classes.dexを試してください。dex2jar classes.dexであるため、このコマンドは非推奨です。
Umesh 2013

23
見つけられない人のためにframework-res.apkここ
atulkhatri 14

12
d2j-dex2jar.shを見つけられなかった方は、ここからdex2jarをダウンロードしてください。dex2jar.googlecode.com
files

14
ステップ2:4で立ち往生している人のために、このバージョンをダウンロードして問題を解決します:sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/downloadそれは私のために行いました。@delive
siriuseteor77

126

これは代替の説明です-誰かが上記の説明に行き詰まった場合に備えて。手順に従ってください:

  1. ダウンロードapktool.bat(またはapktoolLinuxの場合)およびhttp://ibotpeaches.github.io/Apktool/install/apktool_<version>.jarから
  2. 上からjarファイルの名前を変更します apktool.jar両方のファイルを同じフォルダーに配置します

  3. dosボックスを開く(cmd.exe)をそのフォルダーに移動します。Java環境がインストールされていることを確認します(Linuxの場合は、必要なライブラリーに関する注記も確認してください)
  4. 開始: apktool decode [apk file]

    中間結果:リソースファイル、AndroidManifest.xml

  5. 任意の解凍プログラムでAPKファイルを解凍します

    中間結果classes.dex

  6. dex2jar-0.0.9.15.zipからダウンロードして抽出http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=ます
  7. ドラッグ&ドロップclasses.dexの上にdex2jar.bat(またはEnter <path_to>\dex2jar.bat classes.dexDOSボックスで、Linuxの使用のためにdex2jar.sh

    中間結果classes_dex2jar.jar

  8. 開梱 classes_dex2jar.jar(使用する逆コンパイラによってはオプションの場合があります)
  9. クラスファイルを逆コンパイルします(例:JD-GUIまたはDJ Decompilerを使用)

    結果:ソースコード

注:サードパーティのパッケージを逆コンパイルすることはできません。このガイドは、APKファイルからのみ個人のソースコードを復元することを目的としています。最後に、結果のコードはおそらく難読化されます


6
また、このAPKTool-> dex2jar-> JD-GUIルートに現代的な代替手段があることも付け加えておきます。Jadxと呼ばれるオープンソースのAPKとDEXデコンパイラーを試してみてください:sourceforge.net/projects/jadx/files ここにもオンラインバージョンがあります:javadecompilers.com/apk
Andrew

1
逆コンパイルする:(法的な読み取り)が許可されているすべての APKファイルを。:次の質問を参照してくださいstackoverflow.com/questions/9674557/...
Rakete1111

1
なぜそれらはファイルをapktool返すのsmaliですか?javaファイルを取得するには?
rminaj

108

あなたはあなたを逆コンパイルすることができるかもしれませんが APKファイル、1つの大きな問題が発生する可能性があります。

記述したコードは返されません。代わりに、ランダムな名前が付けられた変数とランダムな名前が付けられた関数を使用して、コンパイラーがインライン化したものを返します。逆コンパイルして元のコードに復元しようとすると、最初からやり直すよりもかなり時間がかかる可能性があります。

悲しいことに、このようなことが多くのプロジェクトを殺しました。
今後は、CVSSVNgitなどのバージョン管理システムについて学ぶことを強くお勧めします

それをバックアップする方法。


19
Dropboxのようなサービスも役立ちます。
ジェレミー・ローガン

1
CDに書き込む方法は常にあります
JerryGoyal

52

Playストアには、apkを逆コンパイルして(システムアプリケーションも)、スマートフォンでソースコードを表示できる新しいアプリケーションもあります。ファイルをSDカードに保存するので、コンピューターで表示することもできます。ルートなどは必要ありません。

インストールして楽しんでください。これがアプリを逆コンパイルする最も簡単な方法だと思います。


1
これが一番簡単です。
Midhun Vijayakumar 2018

@MidhunVijayakumarこれを使用してapkからソースコードへの変換を行うことができますか?
Sajeev

28

apktoolは、試すことができる最高のものです。いくつかのxmlを保存しましたが、正直なところ、それが.javaコードでどのように機能するかわかりません。

あなたが唯一のコーダーであっても、コードリポジトリを用意することをお勧めします。私は自分のプロジェクトでProject Lockerを使用しています。無料のsvnとgitリポジトリを提供します。


リソース(つまり、Androidアプリケーションからの画像。実際には、ツールには競合他社がありません!)を抽出する場合、apktoolは不可欠です。www.javadecompilers.com/ apktool
Andrew

23

これら二つの記事は、の使用を結合する方法を説明apktoolしてdex2jar取るようにAPKファイルをし、それを構築し、実行することができますEclipseプロジェクトを作成します。

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

基本的にあなた:

  1. 使用する apktoolAPKからリソースファイルを取得するためにします
  2. dex2jarEclipseが好む形式のクラスを含むjarファイルを取得するために使用します。
  3. Eclipseプロジェクトを作成し、リソースファイルと新しいjarファイルを指定します。
  4. zipユーティリティでjarファイルを開き、既存のリソースを削除します
  5. JDGuiソースコードを表示するには、jarファイルを開きます
  6. 必要なソースコードをすべて取りJDGui、Eclipse内のクラスに貼り付けて変更します。
  7. jarファイルからそのクラスを削除します(同じクラスを複数回定義しないようにします)。
  8. それを実行します。

2
私は私が情報を渡すしたいと思い、この質問にはまだ回答されて知っている:アンドロイドAPKのためのオンライン逆コンパイラがある decompileandroid.com ローカルマシンからアップロードAPKは、ZIP形式で、ダウンロードのソースコードを、いくつかの瞬間を待ちます。
Snehal Masne 2014年

2
いいですね。そして、decompileandroid Webサイトにも、すべてのソースのコピーがあります。賢い!
DDSports 2015

1つの質問、私はapkを逆コンパイルしましたが、jd guiではJavaの実際のクラスがあるかどうかわかりません。

21

apktoolは動作します。ソースコードを抽出するためにキーストアを知る必要さえありません(これは少し怖いです)。主な欠点は、ソースがJavaではなくSmali形式で表示されることです。ただし、アイコンやmain.xmlなどの他のファイルは問題なく通過するため、少なくともそれらを復元する価値はあります。最終的には、ほとんどの場合、Javaコードを最初から書き直す必要があります。

ここで apktoolを見つけることができます。apktoolと適切なヘルパー(Windows、Linux、またはMac OS用)をダウンロードするだけです。7-zipなどのツールを使用して解凍することをお勧めします。


16

これにはいくつかの方法があります。

  1. Android Studio 3.0の「プロファイルまたはデバッグAPK」機能を使用します。

    Android StudioでAPKを開いて探索できます。クラスはsmaliに逆コンパイルされます。リソースは抽出されず、「Go to Definition」、「Find All References」、およびデバッグなどは、ソースコードなしでは機能しません(android studio 3.0 canary 9)。一部のsmali機能は、smalideaで機能する場合があります。

    android-studio

    ファイルを選択

    コード

  2. jadxを使用します

    Jadxは、指定されたAPKのコードをJavaソースファイルに逆コンパイルします。

    jdax-img

  3. apktoolを使用します

    Apktoolは、リソースを抽出し、指定されたapkのコードをsmaliに逆コンパイルするコマンドラインツールです。apktoolを使用して再コンパイルすることもできます。これが動作中の例です:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...

私はjadxを試しましたが、単純なhelloworldでもJavaに逆コンパイルしますが、プロジェクトをAndroid Studioで開いてapkにコンパイルしようとすると、さまざまな理由で失敗します(複製ファイルなど)。コンパイルしてapkに戻すことができるJavaを作成するメソッドはありますか?
2017年

1
@ransh通常、jadxを使用してコードを読み取り、次にapktoolを使用してコードを変更します。apktoolはJavaを作成しませんが、再コンパイルできます。
0xcaff

0xcaff、説明ありがとうございます。それは今理にかなっています。Android Studioで逆コンパイルJavaをコンパイルしようとしたため、機能しませんでした。
2017年

16

ソースを見るのは簡単かもしれません:

2.3 Androidのスタジオで、Build -> Analyze APK -> Select the apk that you want to decompile
ソースコードが表示されます。

参照用リンク:https :
//medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2


9
クラスとメソッドをリストしますが、ソースコードは提供しません。
WSS

上記のファイルは、「。apk」を「.zip」に変更することによってのみ取得できます
M. Usman Khan

7

.apkを逆コンパイルする別の方法を紹介しますファイルます。

prankul garg」の最初の2つのステップを実行できます。したがって、別の機会があります。

ステップ3 ':

これを見つけるのは簡単な「JD-GUI」をダウンロードしてください。「jd-gui.exe」で.jarファイルを開きます。([ファイル]> [ファイルを開く]> [ .jarファイルが見つかりました])。この手順の後、すべてのリソースを.zipファイルに保存できます。

そう、

1- .apkファイルの名前を変更する必要があります .zip

2 番目-.dexファイルをデコードする必要があります(必要に応じて、.apkファイルをdex2jarにデコードします)は可能です)

3番目-JD-GUIで.jarファイルをデコードする必要があります


20
この答えは、他の人が何をしないと提供しますか?
–JørgenR 2013

zipに名前を変更する必要はありません。7-zipで直接apkファイルを開くことができました。
miva2

7

ONLINEツールの下:

http://www.javadecompilers.com/apk

ワンクリックですべてを実行:非常に優れた逆コンパイラ(jadxは、「逆コンパイルできない」などの関数内のコメントを返す場所/関数にjavaコードを返す)で、逆コンパイルされた.javaファイル+リソース+ xml(1つの.zipファイル) androidアセンブラー/マシンコード)


はい、これは素晴らしいですが、関数名の代わりに、すべての関数名がCS1001などに変更されました。これらをどのように認識するか。さらに、この逆コンパイルされたapkをAndroidスタジオプロジェクトとして直接使用できますか?
Zia Ur Rahman

次に、アプリで機能を使用できない場合に、一部のapkを逆コンパイルするために使用する目的。
Zia Ur Rahman

@ZiaUrRahmanわからない。ただし、私の場合、コードを逆コンパイルしてアルゴリズムを分析します。そのツールの逆コンパイルされたコードがAndroid Studioによって完全に自動化された方法でコンパイルできるか、または「人間による処理」が必要かどうかを確認しますか?
カミルキエチェフスキ

1
逆コンパイルしたプロジェクトをandroid studioにインポートしましたが、gradleがなく、プロジェクトには多くのファイルがありますが、実行するまで理解できませんでした。単にそれはうまくいきませんでした。逆コンパイルされたプロジェクトをAndroid Studioで完全に機能させ、いくつかのコア機能を取得してから、自分のプロジェクトで使用/埋め込む必要があります。これを行う方法はありますか?
Zia Ur Rahman、

6

このサイトhttps://www.apkdecompilers.com/が自動的に行いました。

受け入れられた回答に記載されているサイトを最初に試しましたが、それは私にとってはうまくいきませんでした。


Javaのソースコードを取得できませんでした...添付ファイルや..のように見えます
iman kazemayni

上のリンクの@imankazemayniをAPKファイルに「参照」して、「APKを逆コンパイル」をクリックします。コードが暗号化されていない場合は、しばらく時間がかかり、ソースコードが表示されます。
M.ウスマンカーン

暗号化に対するmultidexの影響を知っていますか?
iman kazemayni 2017

6

私は個人的にソースコードを入手するためにJava Androidアプリ表示することをお勧めします。プレイストアまたはこちらからダウンロードできます


ほとんどの場合、オンラインコンパイラは機能していませんが、このアプリは機能しています。ありがとう
Sunil

4

サードパーティのクローズドバイナリAndroidアプリをリバースエンジニアリングするためのApktool

リソースをほぼ元の形式にデコードし、いくつかの変更を加えた後、それらを再構築できます。

smaliコードを段階的にデバッグすることができます。また、プロジェクトのようなファイル構造と、apkのビルドなどの反復的なタスクの自動化により、アプリの操作が簡単になります。

http://ibotpeaches.github.io/Apktool/


3

apktoolは行くべき道です。オンラインapktoolサービスも存在します:http ://www.javadecompilers.com/apktool

明らかに、サービス「オンラインの性質」に起因していくつかの制限が存在します。アセットとマニフェストファイルを抽出して調査することはできますが、現時点ではアプリケーションを再コンパイルすることは不可能です。

それでも、これはAndroidアプリケーションを「開く」ための簡単な方法です。


3

DexPatcherを試すことができます。Android Studioとも統合できます。ApktoolDex2Jarを内部で使用します。
これらのツールを個別に使用することもできます。 Apktoolは apkを逆コンパイルし、Dex2Jarを使用してjarにさらに変換できる.dexファイルを抽出します。jarはJD-GUIを使用して逆コンパイルできます。あなたはそのツールの助けを借りてJavaコードを見ることができます。逆コンパイルされたコードと実際のコードの類似性は保証できませんが。市場には、高度なコード難読化ツールがいくつかあり、コードをめちゃくちゃにして、逆コンパイル/理解を困難にします。例えば。プロガード


こんにちはAndroid StudioでDexPatcherを使用する方法?
ravi152

コメントですべてを説明することはできません。Googleはあなたの友達です:)いくつかの素晴らしいyoutubeチュートリアルもあります。
ラクシュミカントデシュパンデ

2

あなたのAndroid APKの場合、あなたの状態に基づいて:

条件1:硬化しない(Tencent Legu / Qihoo 360 / ...)

選択肢1:オンラインサービスの使用

といった:

www.javadecompilers.comを使用する

goto:

apkからjavaソースコードに自動デコードする

手順:

uploadapkファイル+クリックRun+しばらく待つ+クリックDownloadしてzipを取得+解凍->

sources/com/{yourCompanyName}/{yourProjectName}

予想されるJavaソースコード

選択2:自分で逆コンパイル/クラック

関連ツールを使用して、自分で逆コンパイル/分解します。

使用jadx/ jadx-gui変換apkしますjava sourcecode

jadx-0.9.0.zipをダウンロードし、次に展開してgot bin/jadx、次に:

  • コマンドラインモード:
    • ターミナルでの実行: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folderは、デコードされ表示されますsourcesと、resources
      • sources/com/{yourCompanyName}/{yourProjectName} あなたの期待です java sourcecode
  • GUIモード
    • ダブルクリックで実行jadx-0.9.0/bin/jadx-gui(Linux jadx-gui.sh/ Windows jadx-gui.bat
    • apkファイルを開く
    • 自動デコード->予想されるJavaソースコードを確認します
    • save all または save as Gradle project

例えば:

条件2:硬化(Tencent Legu / Qihoo 360 / ...による)

主な方法3 steps

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

詳細な説明:

ステップ1: apk/app to dex

実行中のアプリからツール(FDex2/ DumpDex)ダンプ/フックアウト(1つまたは複数)dexファイルを使用する

手順:

環境を整える

  • a rootエドアンドロイド
  • あなたのAndroid APKをインストールしてください
    • 電話またはエミュレータに
  • インストールされたXposedインストーラー
  • XPosedFDex2/ DumpDexをインストールして有効にします
    • 注:FDex2を機能させるにはXposedを再起動する必要があります
    • FDex2ダウンロードアドレス、中国語
  • Android APKを電話/エミュレーターにインストールする

dex実行中のアプリからダンプする

  • 実行しFDex2、apk名をクリックして、後でdexをキャプチャ/フックできるようにします

  • (電話/エミュレーターで)アプリを実行する
  • apkリソース全体をダンプアウトして見つけてコピーする /data/data/com/yourCompanyName/yourProjectName
    • そのルートフォルダに通常いくつかのdexファイルが見つかります

ステップ2: dex to jar

ツール(dex2jar)を使用して(特定の、アプリロジックを含む)dexファイルをjarファイルに変換する

ダウンロードdex2jarはdex-tools-2.1-SNAPSHOT.zipを解凍GOT、dex-tools-2.1-SNAPSHOT/d2j-dex2jar.shその後、

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

例えば:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

ステップ3: jar to java src

次のいずれかのツールを使用します。

変換jarjava src

jarからjava srcへの変換効果:

Jadx> Procyon> CRF>>JD-GUI

使用をお勧めします:Jadx/jadx-gui

手順:

  • ダブルクリックして実行します jadx-gui
  • dexファイルを開く
  • File -> save all

例えば:

エクスポートされたjava src:


より詳細な説明は私のオンライン電子ブック中国語チュートリアルを見ることができます:


2

Androidスタジオでは、任意のapkファイルを分析できます。

1-ビルドメニューから、analyze apkオプションを選択し、apkファイルを選択します。2-これにより、classes.dexファイルとその他のファイルが生成されます。3-classes.dexをクリックすると、フォルダー、パッケージ、ライブラリ、ファイルのリストが表示されます。4-Android Studioの設定から、「Dex to Jar」というプラグインをインストールします。5-抽出したプロジェクトのアクティビティファイルをクリックし、ビルドメニューからdex to jarを選択します。

これにより、Javaファイルの実際のコードが生成されます。

乾杯。


1

最も簡単な方法は、Apk OneClick Decompilerを使用することです。これは、APK(Androidパッケージ)を逆コンパイルおよび逆アセンブルするためのツールパッケージです。

特徴

  • すべての機能がWindowsの右クリックメニューに統合されています。
  • APKクラスをJavaソースコードに逆コンパイルします。
  • APKを逆アセンブルしてsmaliコードを作成し、そのリソースをデコードします。
  • 右クリックでAPKを電話にインストールします。
  • smaliコードやリソースを編集した後、APKを再コンパイルします。再コンパイル中:
  • PNG画像を最適化する
  • サインAPK
  • Zipalign

要件

Javaランタイム環境(JRE)がインストールされている必要があります。

このリンクからダウンロードできますApk OneClick Decompiler

それをお楽しみください。


1

最も簡単な方法は次のとおりです。

  1. app.apkの名前をapp.zipに変更します(拡張子をapkからzipに変更します)
  2. zipファイルをフォルダーに抽出します
  3. JADXツールを使用して、classes.dexファイルにあるソースコードを読み取ります。

1

そのためのアプリがあり、通常は数回クリックするだけで完了です。 https://github.com/Nuvolect/DeepDive-Android

  1. アプリを選択し、「インストール済みアプリ」でアプリを選択します。ない場合は、APKをロードできます。
  2. 「APKを抽出」を選択します
  3. 「APKの解凍」を選択します
  4. 「Jadxで逆コンパイル」を選択します。これは、デバイスの速度に応じて、数秒または数分かかる場合があります

その後、ソースコードを参照し、elFinderを使用して別のコンピューターにダウンロードするか、Luceneを使用してソースコードを検索します。

Jadxに加えて、CFRおよびFernflowerデコンパイラーがあります。


0

dex2jarをfedora 31ラップトップでapkに対して機能させるために、何も機能しなくなったapkに対して、私は何日も頭を悩ませてきました。このpython 3スクリプトはトリックを数分で実行し、jd-guiをインストールするとクラスファイルが人間が読めるようになりました。

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

具体的には、ここに私が実行したものがあります:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

これで、クラスファイルを取得するために次のように動作するはずです。

$> enjarify yourapkfile.apk

そして、jd-guiを開始するには:

$> jd-gui

次に、クラスファイルを開きます。



0

このツールを使用する http://www.javadecompilers.com/

しかし最近、デコンパイラーの新しい波が市場に参入しました: プロキオン、CFR、JD、ファーンフラワー、クラカタウ、キャンドル。

このサイトにある逆コンパイラのリストは次のとおりです。

CFR-無料、利用可能なソースコードなし、http//www.benf.org/other/cfr/著者:Lee Benfield

非常によく更新された逆コンパイラ!CFRは、Java 9モジュール、Java 8ラムダ、Java 7文字列スイッチなど、最新のJava機能を逆コンパイルできます。クラスファイルを他のJVM言語からJavaに戻すこともできます。

JD-非営利目的でのみ無料、http//jd.benow.ca/著者:Emmanuel Dupuy

2015年に更新されました。独自のビジュアルインターフェイスとEclipseおよびIntelliJへのプラグインがあります。C ++で書かれているため、非常に高速です。Java 5をサポートします。

Procyon-オープンソース、https ://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler作成者:Mike Strobel

Fernflower-オープンソース、https://github.com/fesh0r/fernflower :作者:Egor Ushakov

2015年に更新されました。非常に有望な分析JavaデコンパイラーがIntelliJ 14の不可欠な部分になりました。(https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler)バージョン6までのJavaをサポート(注釈、ジェネリックス、列挙型)

JAD-歴史的な理由でのみここに記載されています。無料、ソースコードなし、jadダウンロードミラー作者:Pavel Kouznetsov

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.