decompiling DEX Java sourcecode
-
12-09-2019 - |
質問
どのようにワンジニアリング、逆アセンブル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
スクリプトに置き換えられます。
ステップ2:
JD-GUIでjarファイルを開く
他のヒント
明らかに幾分するつもりですが、いつまでも路かかる場合がございますこちらによって何を達成したい:
ンジニアリング、逆アセンブル、ダールヴィークbytecode(dex)の読みのJavaソースです。これまでに簡単に dex2jar や jd-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を作成した人によって作られてます。
マニュアル方法
最初に必要なツール エキス すべてのデータの授業では、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を持っています。それを試してみてください!
一度ダウンロードおAPKファイルを行う必要があります。に以下の施策を実施しています。く編集可能なjavaコード/書類です。
- 換されたapkファイルをzip(ながらの始まりはダウンロードになって"保存"オプションだけに"名前を付けて保存"この拡張機能です。zip)によってこのようにくAPKTOOL...
- エキスは、zipファイルがありまsomefilename.dex.そこで、私たちは今、変換する必要があるdex->.クラス
- そのために必要なもの"dex2jar"(から無償でダウンロードできます http://code.google.com/p/dex2jar/ 後に抽出し、コマンドプロンプトで特筆すべきことの一つは、、 [D:\dex2jar-0.09>dex2jar somefilename.dex] (うsomefilename.dexに必ず同じフォルダにいくdex2jar.)
- ダウンロードjadから http://www.viralpatel.net/blogs/download/jad/jad.zip を抽出します。一回の抽出できますファイルのように"jad.exe"および"Readme.txt"(時"jad.txt"ああではなく"jad.exe"うだけで名前の変更、拡張子as.exe ラ)
- 最後に、コマンドプロンプトで特筆すべきことの一つは、い [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年度)に答え:
主要論理
から dex
へ java sourcecode
, 現在は、二種類の溶液
One Step
:直接変換dex
へjava sourcecode
Two Step
:最初の変換dex
へjar
, 第二に変換jar
へjava sourcecode
一液 dex
直接 java sourcecode
ツール
工程
- ダウンロード jadx-0.9.0.zip,解凍し、
bin
フォルダでコマンドラインjadx
またはGUI版jadx-gui
, ダブルクリックで実行GUIのバージョン:jadx-gui
- open
dex
ファイル
その後できるjavaソースコード:
File
->save as gradle project
そのたjava sourcecode:
二段液
Step1: dex
へ jar
ツール
工程
ダウンロード dex2jar zip,解凍した d2j-dex2jar.sh
, とします。
apk
へjar
:sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
dex
へjar
: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: jar
へ java sourcecode
ツール
- jd-gui:一番人気が
many
コードエンジニアリング、逆アセンブル - CRF:大人気、
minor
コードエンジニアリング、逆アセンブル - Procyon:大人気、
no
コードエンジニアリング、逆アセンブル- GUIツールに基づく
Procyon
- GUIツールに基づく
- その他
- Krakatau
- Fernflower
- (添付画像の丸で囲んだ部分 AndroChef
- など。
工程
こちらのデモ 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 / の
これを行うには以下の手順:
- 変換apkファイルをzip
- 解凍ダウンロードしたファイル
- エキス。dexからで
- 利用dexをjarに変換します。dexにjarファイル
- 利用jadx guiのjarファイルとしてのjavaソースコード
Androidアプリをコンパイルするための最も簡単な方法は、playstoreからのShowJavaのという名前のアプリをダウンロードすることです。ただ、アプリケーションのリストから、逆コンパイルする必要のあるアプリケーションを選択します。あなたは、すなわちアプリケーションをコンパイルするために使用できる3つの異なる逆コンパイラがあります -
CFR 0.110、JaDX 0.6.1またはFernFlower(分析用逆コンパイラ)。
、そしてちょうど apk_grabber
Pythonスクリプトは、いずれかを逆コンパイルするをjarファイルの中にAPK。そして、あなたはJD-GUIでそれらを読みます。