質問

どのようにワンジニアリング、逆アセンブルAndroid DEX(VM bytecode)ファイルに対応するJava sourcecode?

役に立ちましたか?

解決

それは簡単です

これらのツールを取得します:

1) dex2jar のファイルをジャーにDEXファイルを変換するために、

2) JD-GUI のジャーにjavaファイルを表示します。

dex2jarは、いくつかの最適化を行い、ソースコードは非常に読みやすいです。

手順:

そして、ここでは逆コンパイルする方法についての手順です。

ステップ1:

タグ-debug_dex2jar.jarをtest_apkするtest_apk-debug.apkでclasses.dexを変換します
d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex
  

注:のWindowsマシンでは、すべての.shスクリプトは.batスクリプトに置き換えられます。

ドキュメントdex2jarする

ステップ2:

JD-GUIでjarファイルを開く

逆コンパイルソース

他のヒント

明らかに幾分するつもりですが、いつまでも路かかる場合がございますこちらによって何を達成したい:

ンジニアリング、逆アセンブル、ダールヴィークbytecode(dex)の読みのJavaソースです。これまでに簡単に dex2jarjd-gui, としてフレッド述の通り.この結果、ソースを読み、理解する機能のアプリが見を100%使用のコードです。その他の言葉を読むことができソースがしたりすることはできません修正およびパッケーです。注意した場合には、源obfuscatedとproguardのソースコードが実質的に困難になるuntangle.

その他の主なインタビューを受けたことがある分解のbytecodeる smali, り、組み立てから自動的に学習する能力を正確に。私ための最も簡単な方法はないこと apktool.お客さま人数小児-幼児にもapktool設置したりすることも可能ですの点でapkファイルだけが返smaliファイルはそれぞれのクラスに含まれる。きを読み、変更のsmaliも交換授業全てが発生smaliから新しいJavaソース(このためには、コンパイル。javaソースです。クラスファイルのjavacに変換して、おります。クラスファイルです。dexファイルをAndroidのdxコンパイラ、およびその利用baksmali(smali逆アセンブラ)に変換します。dexます。smaliファイルに記載のとおり この質問.がある場合がございますショートカットはこちら)。まんができたら簡単にパッケージのapk復帰apktoolます。ご注意apktoolに署名をしないのapk必要になりますかる のような他のAndroidアプリケーション.

場のsmaliルートするためにしてみ APKスタジオ, には、IDEを自動で行い、セキュリティ"メニュー画面を実現することができればdecompilingおよび再コンパイルを伴るapkを設置しました。

は、お客様の選択とほとんどは逆コンパイルJava、読みやすくするためにもが取り返しのつかないものであり、または分解をsmaliるのがより難しくなっている読みしかし、その活動は、さらに多くの柔軟性を変更し、パッケー変更したもの。するアプローチを選択するように働きますが?ます。

最後に、提案 あえて ものです。でリターゲティングツールです。dexます。apkファイルjava.クラスファイルできるように析出す代表的なjavaにおける静的解析ツールです。

私は実際にここに行くお勧めします: https://github.com/JesusFreke/smaliする

これは、DEXファイルのための最も優れたリバース・エンジニアリング・ツールですBAKSMALIは、用意されています。 それはJesusFreke、Android用fameous ROMを作成した人によって作られてます。

より完全版 フレッド-'s 答え:

マニュアル方法

最初に必要なツール エキス すべてのデータの授業では、DEXをJAR.
あさんという dex2jar, ることで目が大きく見せられる中国の学生です。

そして、利用できる jd-guiンジニアリング、逆アセンブル の授業では、JARをソースコード。
この結果、ソースは非常に読みや、dex2jar適用の一部の最適化.

自動的な方法

利用できる APKTool.ま 自動的に エキスのすべてのクラス.dex),資源(.asrcであることを検証することがす バイナリーのXML人間が読める形式のXML, でも dissassemble 授業はすべてを英語で行います。
分解は常にできな外decompiling, 特に
ジャobfuscatedプロガード!

私APKToolる デコード のAPKへのディレクトリ、そして 修正 何をしたい,
最後に エンコード まさかのぼAPK.ることはありません。

重要: APKTool dissassembles.ません ンジニアリング、逆アセンブル.
生成されたコードなのJavaソースです。
が対応することができるでしょう読んでも編集することがでおなじみの 経営情報学会.
したい場合はJavaソース行ってください、 マニュアル方法.

時々、最も顕著なループで、dex2jar / apktoolを使用しているときに、壊れたコードを取得します。 、 jadx に使用し、これを回避するために、(.jarがないように、第1 .class / dex2jarファイルを作成せずに、Javaソース・コードへのDalvikバイトコードを逆コンパイルいますapktoolは)私が思うdex2jar使用しています。また、オープンソースと活発に開発中です。それも、GUI-狂信者のためのGUIを持っています。それを試してみてください!

誰がこれを言及しないためには、1つのより多くのツールがあります: DEDホームページ

インストールする

ハウツーといくつかの説明をインストールします。

これは、(あなたが興味があるかの本当に関係ありません)トップ市場のアプリのセキュリティの非常に興味深い研究で使用した<のhref = "http://www.enck.org/pubs/enck- sec11.pdf "> Androidのアプリケーションセキュリティの調査

利用してい

  1. dex2jar+jd-gui
  2. javadecompilers.com
  3. enjarify
  4. Apktool

なビートをgoogleの独自のツール

1)Androidスタジオ2.x: 構築>分析apk enter image description here

2)Android Studio3.0: プロファイルやデバッグAPK enter image description here enter image description here

一度ダウンロードおAPKファイルを行う必要があります。に以下の施策を実施しています。く編集可能なjavaコード/書類です。

  1. 換されたapkファイルをzip(ながらの始まりはダウンロードになって"保存"オプションだけに"名前を付けて保存"この拡張機能です。zip)によってこのようにくAPKTOOL...
  2. エキスは、zipファイルがありまsomefilename.dex.そこで、私たちは今、変換する必要があるdex->.クラス
  3. そのために必要なもの"dex2jar"(から無償でダウンロードできます http://code.google.com/p/dex2jar/ 後に抽出し、コマンドプロンプトで特筆すべきことの一つは、、 [D:\dex2jar-0.09>dex2jar somefilename.dex] (うsomefilename.dexに必ず同じフォルダにいくdex2jar.)
  4. ダウンロードjadから http://www.viralpatel.net/blogs/download/jad/jad.zip を抽出します。一回の抽出できますファイルのように"jad.exe"および"Readme.txt"(時"jad.txt"ああではなく"jad.exe"うだけで名前の変更、拡張子as.exe ラ)
  5. 最後に、コマンドプロンプトで特筆すべきことの一つは、い [D:\jad>jad-sjava yourfilename.class] で解析してクラスファイルを編集可能なjavaます。

Dedexer を使用すると、のDalvikバイトコード(.dex)に.ddxファイルを逆アセンブルすることができます。

のJavaへの逆コンパイルは、私の知る限りでは不可能です。
あなたはここにののDalvikバイトコードについて読むことができます。

Android逆工が可能 .次の手順を取得します。javaファイルからのapkファイルです。

Step1.使用dex2jar

  • を生成する際に使われます。jarファイルです。apkファイル
  • コマンド: dex2jar sampleApp.apk

Step2.Decompiling.jarを使用JD-GUI

  • でdecompilesます。クラスファイル、また obfuscated .javaのapk.

最近のDebian Pythonパッケージのandroguardがあります:

Description-en: full Python tool to play with Android files
 Androguard is a full Python tool to play with Android files.
  * DEX, ODEX
  * APK
  * Android's binary xml
  * Android resources
  * Disassemble DEX/ODEX bytecodes
  * Decompiler for DEX/ODEX files

、対応するパッケージをインストールします:

sudo apt-get install androguard python-networkx

DEXファイルを逆コンパイルます:

$ androdd -i classes.dex -o ./dir-for-output

APK +逆コンパイルからclasses.dexを抽出します:

$ androdd -i app.apk -o ./dir-for-output

APKファイルJavaアーカイブ(JAR)は、あなたが経由してアーカイブからファイルを抽出してもよいということの何物でもありません。

$ unzip app.apk -d ./dir-for-output

多くは、これらの答えのほとんどが掲載された以降に変更されました。今-日間そこには、これらのように、GUIの持つ多くの使いやすいツールです。

APK Easy Tool for Windows (GUI tool, friendly)
Bytecode Viewer - APK/Java Reverse Engineering Suite
URET Android Reverser Toolkit

それらを見つける最適な場所はXDA開発者フォーラムにあります。

以降 Dheeraj Bhaskarの回答が比較的古く年間ます。

ここでは私の相手方の内部情報、技術情報、シ2019年度)に答え:

主要論理

から dexjava sourcecode, 現在は、二種類の溶液

  • One Step:直接変換 dexjava sourcecode
  • Two Step:最初の変換 dexjar, 第二に変換 jarjava sourcecode

一液 dex 直接 java sourcecode

ツール

工程

  1. ダウンロード jadx-0.9.0.zip,解凍し、 bin フォルダでコマンドライン jadx またはGUI版 jadx-gui, ダブルクリックで実行GUIのバージョン: jadx-gui

  1. open dex ファイル

その後できるjavaソースコード:

  1. File -> save as gradle project

そのたjava sourcecode:


二段液

Step1: dexjar

ツール

工程

ダウンロード dex2jar zip,解凍した d2j-dex2jar.sh, とします。

  • apkjar: sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
  • dexjar: sh d2j-dex2jar.sh -f ~/path/to/dex_to_decompile.dex

例:

➜  v3.4.8 /Users/crifan/dev/dev_tool/android/reverse_engineering/dex-tools/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.huili.readingclub8825612.dex
dex2jar com.huili.readingclub8825612.dex -> ./com.huili.readingclub8825612-dex2jar.jar
➜  v3.4.8 ll
-rw-------  1 crifan  staff   9.5M  3 21 10:00 com.huili.readingclub8825612-dex2jar.jar
-rw-------  1 crifan  staff   8.4M  3 19 14:04 com.huili.readingclub8825612.dex

Step2: jarjava sourcecode

ツール

  • jd-gui:一番人気が many コードエンジニアリング、逆アセンブル
  • CRF:大人気、 minor コードエンジニアリング、逆アセンブル
  • Procyon:大人気、 no コードエンジニアリング、逆アセンブル
  • その他

工程

こちらのデモ Procyon 変換jarへのjavaソースコード:

ダウンロード procyon-decompiler-0.5.34.jar

を用いて構文:

java -jar /path/to/procyon-decompiler-0.5.34.jar -jar your_to_decompile.jar -o outputFolderName

例:

java -jar /Users/crifan/dev/dev_tool/android/reverse_engineering/Procyon/procyon-decompiler-0.5.34.jar -jar com.huili.readingclub8825612-dex2jar.jar -o com.huili.readingclub8825612

使用エディタ VSCode 開輸出のソースコードは、このように:

結論

変換性: Jadx > Procyon > CRF > JD-GUI

ご利用がおすすめです:(一ステップソリューションの) Jadx


より詳しい説明をご参照ください私のオンライン 中国 電子書籍: 安卓应用的安全和破解

あなたは( https://bitbucket.org/mstrobel/procyon/wiki JADXを試してみてください/ Javaの%20Decompiler に)、これはDEXの逆コンパイルのための完璧なツールです。

そして、はい、それは(私:0)上でもオンラインで入手できます)新しいサイト:のhttp:// WWW .javadecompilers.com / APK /

これを行うには以下の手順:

この逸品はこれらのこす自動的にでも設置に必要なツール

  1. 変換apkファイルをzip
  2. 解凍ダウンロードしたファイル
  3. エキス。dexからで
  4. 利用dexをjarに変換します。dexにjarファイル
  5. 利用jadx guiのjarファイルとしてのjavaソースコード

Androidアプリをコンパイルするための最も簡単な方法は、playstoreからのShowJavaのという名前のアプリをダウンロードすることです。ただ、アプリケーションのリストから、逆コンパイルする必要のあるアプリケーションを選択します。あなたは、すなわちアプリケーションをコンパイルするために使用できる3つの異なる逆コンパイラがあります -

  

CFR 0.110、JaDX 0.6.1またはFernFlower(分析用逆コンパイラ)。

あなたがdex2jarをダウンロードして見ていない場合は、

、そしてちょうど apk_grabber Pythonスクリプトは、いずれかを逆コンパイルするをjarファイルの中にAPK。そして、あなたはJD-GUIでそれらを読みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top