web-dev-qa-db-ja.com

apkファイルのコードを抽出する方法

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

新しいフォルダーを作成し、.apkファイル(デコードする)を置き、この.apkファイルの拡張子を.Zipに変更し(例:filename.apkからfilename.apk.Zipに名前を変更)、保存します。 .dexファイルなど...この段階では、xmlとJavaファイルではなくdrawableを見ることができます...

ステップ2:

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

=>質問:-ステップ1を達成できましたが、ステップ2でdex2jar classes.dexを実行すると、コマンドプロンプトJava.lang.UnsupportedClassVersionErrorでエラーが表示されます。 .dex jdkのバージョン番号はここに残っており、dntは抜け出します...

71
Gaurav Chawla

市場からの.apkファイルまたは署名なし

  1. Apkが市場からダウンロードされたため、市場からInstall 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 on terminal)

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

  6. Jd-guiファイルで「targetapp.apk.dex2jar.jar」を開き、すべてのソースを保存して、jar内のクラスファイルをJavaファイルに保存します。

29
Gaurav Chawla

注:以下の指示はすべて、特に指定がない限り、すべてのOSに共通して適用されます


前提条件

必要になるだろう:

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

手順

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

  1. ファイル名に.apk拡張子を追加するか、.Zip.apkに変更して、.Zipファイルのファイル拡張子を変更します。

    たとえば、com.example.apkcom.example.Zipまたはcom.example.apk.Zipになります。 WindowsおよびmacOSでは、ファイル拡張子を変更するかどうかを確認するプロンプトが表示される場合があります。クリック OK または Add macOSを使用している場合:

macOS add extension confirm dialog

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

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

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

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

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

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

    • macOS/Linuxユーザー:d2j-dex2jar.batd2j-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、 マックOS: ++S)。これにより、すべてのパッケージとJavaファイルで構成される「classes-dex2jar.jar.src.Zip」という名前のZipファイルを保存する場所を尋ねるダイアログが開きます(保存するZipファイルの名前を変更できます)。

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

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

  • 詳細については、インストール手順などについて apktool Webサイト を参照してください
  • Windows:

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

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

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

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

ソース: APKファイルからソースコードを取得する方法-Comptech Blogspot

92
Kiran

ステップ1:

enter image description hereDex2jar here をダウンロードします。 Javaプロジェクトを作成し、(dex2jar-0.0.7.11-SNAPSHOT/lib)jarファイルを貼り付けます。

ApkファイルをJavaプロジェクトにコピーします

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

ステップ2:Java decompiler here をダウンロードします

2
Ramesh Akula

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

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

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

  3. dex2jar-0.0.9.15。 here からのZIPダウンロード.

  4. jd-gui-0.3.3.linux.i686.tar.gz(Java de-complier) here からダウンロードします。

  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」を解凍します

– cd – sh dex2jar.sh classes.dex(このコマンド「classes.dex.dex2jar.jar」の結果は、extracted folder自体にあります)。

  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」を解凍します

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

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

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

    – cd

    – chown -R:「apktool.jar」

    – chown -R:「apktool」

    – chown -R:「aapt」

    – sudo chmod + x 'apktool.jar'

    – sudo chmod + x 'apktool'

    – sudo chmod + x 'aapt'

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

    – sudo mv apktool/usr/local/bin

    – sudo mv aapt/usr/local/bin

    – framework-res.apkの場合はapktool – apktool d .apk