web-dev-qa-db-ja.com

APKファイルからプロジェクトへのリバースエンジニアリング

私は誤って Eclipse から自分のプロジェクトを消去しました、そして残ったのは _ apk _ ファイルだけです。アプリケーションを.apkファイルにエクスポートするプロセスを元に戻す方法はありますか。そうすれば、プロジェクトを元に戻すことができますか?

213
Marko Cakic

未知のAPKファイルからJavaコード(おおまかですが十分十分)を生成する2つの便利なツールがあります。

  1. dex2jar からdex2jarツールをダウンロードしてください。
  2. ツールを使用してAPKファイルを _ jar _ に変換します。

    $ d2j-dex2jar.bat demo.apk
    dex2jar demo.apk -> ./demo-dex2jar.jar
    
  3. JARファイルが生成されたら、 JD-GUI を使用してJARファイルを開きます。 Javaファイルが表示されます。

出力は次のようになります。

JD GUI

262
rahul

まず最初に this videoをお勧めしますこれですべてのあなたの疑問を解決できます

そうでない場合はそれを通過してください

Procedure for decoding .apk files, step-by-step method:

Step 1:

新しいフォルダを作成し、その中に.apkファイルを置きます(これをデコードします)。この.apkファイルの拡張子を.Zipに変更し(例:filename.apkからfilename.Zipに変更)、保存します。

.Zipへの変換に問題がある場合は、 link を参照してください。

.zipを取得した後、classes.dexファイルなどを取得します。この段階では、描画可能ファイルは表示されますが、xmlファイルやJavaファイルは表示されないため、続行します。拡張機能がうまくいっていない場合は、設定を確認してください。

Step 2:

同じZipファイルをZipファイルに展開してください。今すぐこの link からdex2jarをダウンロードしてください

同じフォルダに解凍します。今すぐコマンドプロンプトを開いて、ディレクトリをそのフォルダに変更します。

それからdex2jar classes.dexと書いてenterを押してください。これで、同じフォルダにclasses.dex.dex2jarファイルができました。

それから Java decompiler をダウンロードしてください

そして今、jd-guiをダブルクリックし、開いているファイルをクリックしてください。そのフォルダからclasses.dex.dex2jarファイルを開きます。これでクラスファイルを取得し、これらのクラスファイルをすべてsrc名で保存します(ファイルをクリックし、次にjd-guiの「すべてのソースを保存」をクリックします)。そのZipファイル(classes_dex2jar.src.Zip)を解凍すると、アプリケーションのすべてのJavaファイルが得られます。

この段階ではJavaソースを入手できますが、xmlファイルはまだ読めないので続行します。

Step 3:

今すぐ別の新しいフォルダを開き、これらのファイルを置きます

  1. デコードしたい.apkファイルを置く

  2. apktool for windows v1.x And Apktool をダウンロード

googleを使用してウィンドウをインストールし、同じフォルダに置く

  1. googleを使用してframework-res.apkファイルをダウンロードし、同じフォルダーに入れます(すべてのapkファイルにframework-res.apkファイルが必要なわけではありません)

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

  3. APKtoolのルートディレクトリに移動し、次のコマンドを入力します。apktool if framework-res.apk.

上記のコマンドはFramework installed ...になるはずです。

  1. apktool d "appName" .apk( "appName"はデコードしたいアプリケーションを表します)これでそのフォルダの中にファイルフォルダができ、xmlファイルも簡単に読むことができます。

Step 4:最後にres/とプロジェクトのJavaコードを取得しました。

P.S.上記の手順でresフォルダを取得できない場合は、新しい apktool をインストールしてください。

  • Java 1.7はインストールされていますか? Apktool 2.xをインストールします
  • Java 1.6以上がインストールされていますか? Apktool 1.xをインストールする

Enjoy and happy coding

75
Swapnil Sonar

ソフトウェアはありません。

APKをアップロードして、このサイトからすべてのリソースを入手してください。

https://www.apkdecompilers.com/ -

このWebサイトはAPKファイルに埋め込まれたコードを逆コンパイルし、ファイル内の他のすべてのアセットを抽出します。

注意:APKファイルを逆コンパイルしてこのWebサイトから1分以内にコードを取得します

更新1

私は別のオンライン逆コンパイラーサイトを見つけました、

http://www.javadecompilers.com/apk/ - ポップアップブロックを要求し続けていない

アップデート2:

私はPlayストアでapk decompiler appを見つけました、

https://play.google.com/store/apps/details?id=com.njlabs.showjava

Androidフォンでapkファイルを逆コンパイルすることができます。また、このアプリケーションでJava&xmlファイルを表示することもできます。

更新3:

Android Studio 2.2バージョンから別のオプション Analyze APK featureを使用できます

ビルド - > APKの分析 - > APKの選択 - >結果を出す

enter image description here

51
Ranjith Kumar

これを行うための新しい方法があります。

Android Studio 2.2にはAPKアナライザがあり、apkに関する多くの情報が得られます。ここでチェックアウトします。 - http://Android-developers.blogspot.in/2016/05/Android-studio-22-preview-new-ui)。 html

Ap

5
Brijesh Masrani

あんまり。 Smalli 、または dex2jar など、いくつかのdex逆アセンブラ/逆コンパイラスイートがあり、これらは半可読な出力を生成します(dex2jarの場合は、次のようにJavaコードを取得できます)。 JD-GUI のようなものを使用しますが、プロセスは完全ではなく、100%ソースコードを再作成できるようになることはほとんどありません。ソースツリーを再構築します。

4
Chris Thompson

はい、プロジェクトを取り戻すことができます。 yourproject.apkファイルの名前をyourproject.Zipに変更するだけで、そのZipファイル内のすべてのファイルが取得されます。ファイル拡張子を.apkから.Zipに変更します。そのZipファイルから、classes.dexファイルを抽出し、次の方法で逆コンパイルします。

まず、DEX上のすべての(コンパイルされた)クラスをJARに抽出するためのツールが必要です。 dex2jar と呼ばれるものがあり、これは中国人学生によって作られています。

その後、 JD-GUI を使用してJAR内のクラスをソースコードに逆コンパイルできます。 dex2jarはいくつかの最適化を適用するため、結果のソースコードは非常に読みやすくなります。

3
Star

Androidプラットフォームでは、Playストアで入手可能な ShowJava を試すことができます。

あなたはアプリのインターフェースを通して生成されたコードを調べることができ、生成されたJavaファイルとフォルダー構造は変換から結果として生じる/sdcardファイルと一緒に.jarShowJavaフォルダーに格納されます。

このアプリはメインビューの下部に広告バナーが表示され、無料ですが、それを削除するためのアプリ内購入オプション(3,99 $)があります。アプリ内購入では、広告バナーを削除する以外に機能は追加されません。

情報開示:私はアプリの開発者ではありませんし、彼と提携しているわけでもありません。

2
Stephane Piriou

以下の手順に従ってこれを実行するか、または apkToJava gem を使用してこのプロセスに必要なツールをインストールします。

  • apkファイルをZipに変換
  • ファイルを解凍する
  • それからclasses.dexを抽出します
  • dexをjarに使用してclasses.dexをjarファイルに変換する
  • jadx guiを使ってjarファイルをJavaソースコードとして開く
2
Ajit Singh

APKファイルからソースコードにリバースエンジニアリングを実行するために使用できるツールのいくつかを以下に示します。

  1. Dex2jar
  2. Javaデコンパイラー
  3. Apktool
  4. APKアナライザー
1
Mandeep Yadav

あなたがプロとしての選択肢を探しているのなら、 JEB Decompiler PNF Softwareの/を見てください。

ほとんどのコードを逆コンパイルできるデモ版があります。

1
Nick