82

実際、私は cloudfilz.apk という .apk ファイルのコードを抽出しようとしていて、そのソース コードを操作したかったので、以下の手順に従いました:-

新しいフォルダーを作成し、.apk ファイル (デコードするファイル) を配置します。この .apk ファイルの名前を拡張子 .zip に変更し (例: filename.apk から filename.apk.zip に名前を変更)、保存します。これで、クラスが取得されます。 .dex ファイルなど...この段階では、drawable は表示できますが、XML および Java ファイルは表示できません...続行します...

ステップ2:

この zip apk ファイルを同じフォルダー (この例では NEW FOLDER) に抽出します。このリンクhttp://code.google.com/p/dex2jar/から dex2jar をダウンロードし、同じフォルダー (この場合は NEW FOLDER) に展開します。コマンド プロンプトを開き、そのフォルダー (この場合、新しいフォルダー....「dex2jar classes.dex」と入力してEnterキーを押した後、同じフォルダーにclasses.dex.dex2jarファイルを取得します......

=>質問:-ステップ 1 は成功しましたが、ステップ 2 で dex2jar classes.dex を実行しているときに、コマンド プロンプトjava.lang.UnsupportedClassVersionErrorでエラーが発生しました。これは、インストールした JDK バージョンと classes.dex JDK バージョンの間の非互換性が原因であることがわかっています。数がここで立ち往生していて、出口がありません...

4

4 に答える 4

109

注: 特に指定がない限り、以下のすべての手順は普遍的に (すべての OS に) 適用されます。


前提条件

必要になるだろう:

  • 動作中のJava インストール
  • 作業中のターミナル/コマンド プロンプト
  • コンピュータ
  • APK ファイル

手順

ステップ 1: APK ファイルのファイル拡張子を変更する

  1. ファイル名に拡張子を.apk追加するか、..zip.apk.zip

    たとえば、、またはにcom.example.apkなります。Windows および macOS では、ファイル拡張子を変更するかどうかを確認するメッセージが表示される場合があることに注意してください。またはmacOS を使用している場合は、次のようにクリックします。com.example.zipcom.example.apk.zipOKAdd

macOS 拡張機能追加確認ダイアログ

ステップ 2: APK から Java ファイルを抽出する

  1. 名前を変更した APK ファイルを特定のフォルダーに抽出します。たとえば、そのフォルダをdemofolder.

    • うまくいかない場合は、WinZip や 7-Zip などの別のアプリケーションでファイルを開いてみてください。

    • unzipmacOS の場合は、ターミナル (で入手可能) で実行を試すことができます/Applications/Terminal.app。ここでは、1 つ以上の引数 (解凍するファイル + オプションの引数) を取ります。man unzipドキュメントと引数については、を参照してください。

  2. ダウンロード(GitHub のすべてのリリースを参照)し、前のポイントで説明したのと同じフォルダーにその zip ファイルを抽出します。dex2jar

  3. コマンド プロンプト (またはターミナル) を開き、現在のディレクトリを前のポイントで作成したフォルダーに変更し、コマンドd2j-dex2jar.bat classes.dexを入力して Enter キーを押します。classes-dex2jar.jarこれにより、同じフォルダーにファイルが生成されます。

    • macOS/Linux ユーザー:に置き換えd2j-dex2jar.batますd2j-dex2jar.sh。つまり、d2j-jar2dex.sh classes.dexターミナルで実行し、Enter キーを押します。
  4. Java Decompiler をダウンロードし (Github のすべてのリリースを参照)、それを解凍し、実行可能ファイル/アプリケーションを開始 (ダブルクリック) します。

  5. JD-GUI ウィンドウから、生成さclasses-dex2jar.jarれたファイルをドラッグ アンド ドロップするかFile > Open File...、jar に移動して参照します。

  6. 次に、メニューでFile > Save All Sources(Windows: Ctrl+ Alt+ S、macOS:⌘</kbd>+⌥</kbd>+S). This should open a dialog asking you where to save a zip file named `classes-dex2jar.jar.src.zip" consisting of all packages and java files. (You can rename the zip file to be saved)

  7. その zip ファイル ( classes-dex2jar.jar.src.zip) を解凍すると、アプリケーションのすべての Java ファイルが取得されます。

ステップ 3: xmlAPK からファイルを取得する

  • 詳細については、インストール手順などのapktoolWeb サイトを参照してください。
  • ウィンドウズ:

    1. ラッパー スクリプト (オプション)apktool jar (必須)をダウンロードし、同じフォルダー (例: myxmlfolder) に配置します。
    2. 現在のディレクトリをmyxmlfolderフォルダーに変更し、apktool jar ファイルの名前をapktool.jar.
    3. .apkファイルを同じフォルダー (つまり) に配置しますmyxmlfolder
    4. コマンド プロンプト (またはターミナル) を開き、現在のディレクトリをapktoolが格納されているフォルダー (この場合はmyxmlfolder) に変更します。次に、コマンドを入力しapktool if framework-res.apkます。

      ここで行っているのは、フレームワークをインストールしていることです。詳細については、ドキュメントを参照してください。

    5. 上記のコマンドを実行すると、「Framework installed ...」という結果になります。
    6. コマンド プロンプトで、コマンドを入力しますapktool d filename.apk(filenameは apk ファイルの名前です)。これにより、ファイルがデコードされます。詳細については、ドキュメントを参照してください。

      これにより、ファイル拡張子を除いた apk ファイルの元の名前であるフォルダーfilename.outが出力されるはずです。このフォルダーには、レイアウト、ドローアブルなどのすべての XML ファイルがあります。filename.apk

ソース: APK ファイルからソース コードを取得する方法 - Comptech ブログスポット

于 2012-11-21T06:51:11.690 に答える
30

市場からの、または署名されていない .apk ファイル

  1. apk がマーケットからダウンロードされ、署名されている場合は、マーケットから Astro File Manager をインストールします。Astro > Tools > Application Manager/Backup を開き、SD カードにバックアップするアプリケーションを選択します。電話を USB ドライブとしてマウントし、「backupsapps」フォルダーにアクセスして、ターゲット アプリの apk を見つけます (app.apk と呼びましょう)。署名されていない .apk の場合と同じように、ローカル ドライブにコピーします。

  2. このリンクから Dex2Jar zip をダウンロードします: SourceForge

  3. ダウンロードしたzipファイルを解凍します。

  4. コマンド プロンプトを開き、dex2jar exe があるディレクトリに到達して次のコマンドを記述し、同じディレクトリに apk をコピーします。

    dex2jar targetapp.apk file(端末の./dex2jar app.apk)

  5. http://jd.benow.ca/このリンクから逆コンパイラをダウンロードします。

  6. jd-gui File > Save All Sources で「targetapp.apk.dex2jar.jar」を開き、jar 内のクラス ファイルを Java ファイルに保存します。

于 2012-08-07T11:25:57.783 に答える
2

ステップ1:

ここに画像の説明を入力ここからdex2jarをダウンロードしてください。Java プロジェクトを作成し、(dex2jar-0.0.7.11-SNAPSHOT/lib) jar ファイルを貼り付けます。

apk ファイルを Java プロジェクトにコピーする

それを実行し、プロジェクトを更新した後、jar ファイルを取得します。Java デコンパイラを使用すると、すべての Java クラス ファイルを表示できます。

ステップ 2:ここからJava 逆コンパイラをダウンロード します。

于 2011-10-25T11:19:26.880 に答える
0

ここをクリックしてください。 これは、window/ubuntu の両方に適したチュートリアルです。

  1. ここから apktool1.5.1.jar をダウンロードします

  2. ここから apktool-install-linux-r05-ibot をダウンロードします

  3. ここからdex2jar-0.0.9.15.zipをダウンロードします

  4. jd-gui-0.3.3.linux.i686.tar.gz (Java デコンパイラ) をここからダウンロードします

  5. Framework-res.apk (Android デバイスの /system/framework/ にあります)

手順:

  1. .apk ファイルの名前を変更し、拡張子を .zip に変更します。

.zip になります。

  1. 次に、.zip を解凍します。

  2. ダウンロードしたdex2jar-0.0.9.15.zipファイルを解凍し、内容をコピーして解凍フォルダに貼り付けます。

  3. ターミナルを開き、ディレクトリを変更して「dex2jar-0.0.9.15」を解凍します</p>

– cd – sh dex2jar.sh classes.dex (このコマンド「classes.dex.dex2jar.jar」の結果は、解凍したフォルダー 自体にあります)。

  1. 次に、新しいフォルダーを作成し、「classes.dex.dex2jar.jar」をそのフォルダーにコピーします。

  2. 「jd-gui-0.3.3.linux.i686.zip」を解凍し、「Java Decompiler」を全画面モードで開きます。

  3. ファイルを開くをクリックし、ウィンドウで「classes.dex.dex2jar.jar」を選択します。

  4. 「Java Decompiler」をクリックし、ファイル > 保存に移動して、ソースを .zip ファイルに保存します。

  5. 「source_code」フォルダーを作成します。

  6. 保存した .zip を解凍し、内容を「source_code」フォルダーにコピーします。

  7. これは、ソース コードを保持する場所になります。

  8. apktool1.5.1.tar.bz2 を抽出すると、 apktool.jar が得られます

  9. 次に、「apktool-install-linux-r05-ibot.zip」を解凍します</p>

  10. 「framework-res.apk」、「.apk」、および apktool.jar をコピーします。

  11. 解凍した「apktool-install-linux-r05-ibot」フォルダー (13 行目) に貼り付けます。

  12. 次に、ターミナルを開いて次のように入力します。

    - CD

    – chown -R : 'apktool.jar'</p>

    – chown -R : 'apktool'</p>

    – chown -R : 'aapt'</p>

    – sudo chmod +x 'apktool.jar'</p>

    – sudo chmod +x 'apktool'</p>

    – sudo chmod +x 'aapt'</p>

    – sudo mv apktool.jar /usr/local/bin

    – sudo mv apktool /usr/local/bin

    – sudo mv aapt /usr/local/bin

    – フレームワーク-res.apk の場合は apktool – apktool d .apk

于 2015-03-26T09:53:45.453 に答える