Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何提取不工作的.apk文件的代码?_Android_Java_Dex - Fatal编程技术网

Android 如何提取不工作的.apk文件的代码?

Android 如何提取不工作的.apk文件的代码?,android,java,dex,Android,Java,Dex,实际上,我正试图提取一个名为cloudfilz.apk的.apk文件的代码,并希望在其源代码中进行操作,因此我遵循了下面给出的步骤:- 创建一个新文件夹并放入.apk文件(您要解码的文件)现在将这个.apk文件重命名为扩展名.zip(例如:从filename.apk重命名为filename.apk.zip)并保存它..现在您可以看到classes.dex文件等..在这个阶段,您可以看到可绘制文件,但不能看到XML和java文件…所以继续 步骤2: 现在将这个zip apk文件解压缩到同一个文件夹

实际上,我正试图提取一个名为cloudfilz.apk的.apk文件的代码,并希望在其源代码中进行操作,因此我遵循了下面给出的步骤:-

创建一个新文件夹并放入.apk文件(您要解码的文件)现在将这个.apk文件重命名为扩展名.zip(例如:从filename.apk重命名为filename.apk.zip)并保存它..现在您可以看到classes.dex文件等..在这个阶段,您可以看到可绘制文件,但不能看到XML和java文件…所以继续

步骤2:

现在将这个zip apk文件解压缩到同一个文件夹中(在这个eg或case新文件夹中)。现在从这个链接下载dex2jar并将其解压到同一个文件夹(在本例中为新文件夹)…现在打开命令提示符并到达该文件夹(在本例中为新文件夹)…到达后写入“dex2jar classes.dex”并按enter…现在您在同一文件夹中获得classes.dex.dex2jar文件

=>问题:-我成功地完成了步骤1,但在步骤2中,当我执行dex2jar classes.dex时,我在命令提示符
java.lang.UnsupportedClassVersionError
上收到一个错误,我知道这是因为我安装的JDK版本和类之间不兼容。dex JDK版本号卡在这里,没有出路…

步骤1:

下载dex2jar。创建java项目并粘贴(dex2jar-0.0.7.11-SNAPSHOT/lib)jar文件

将apk文件复制到java项目中

运行它并刷新项目后,您将获得jar文件。使用java反编译器,您可以查看所有java类文件


步骤2:从market或unsigned下载java反编译器的任意.apk文件

  • 如果您从市场下载了apk,并因此签署了从市场安装Astro File Manager。打开Astro>工具>应用程序管理器/备份,然后选择要备份到SD卡上的应用程序。 将手机挂载为USB驱动器并访问“backupsapps”文件夹以查找目标应用的apk(我们称之为app.apk)。将其复制到本地驱动器与unsigned.apk的情况相同

  • 从以下链接下载Dex2Jar zip:

  • 解压缩下载的zip文件

  • 打开命令提示符&在到达dex2jar exe所在的目录时编写以下命令,并将apk复制到同一目录中

    dex2jar targetapp.apk文件
    (/dex2jar app.apk在终端上)

  • 从这个链接下载反编译器

  • 使用JDGUI打开“targetapp.apk.dex2jar.jar” 文件>将所有源代码保存到sava,将jar中的类文件保存到java文件


  • 注意:除非另有规定,否则以下所有说明均适用于所有操作系统。


    预请求 您将需要:

    • 工作
    • 工作终端/命令提示符
    • 计算机
    • APK文件
    台阶 步骤1:更改APK文件的文件扩展名
  • 通过向文件名添加
    .zip
    扩展名或将
    .apk
    更改为
    .zip
    来更改
    .apk
    文件的扩展名

    例如,
    com.example.apk
    变成
    com.example.zip
    ,或
    com.example.apk.zip
    。请注意,在Windows和macOS上,它可能会提示您是否确实要更改文件扩展名。如果正在使用macOS,请单击“确定”或“添加”:

  • 步骤2:从APK提取Java文件
  • 提取特定文件夹中重命名的APK文件。例如,将该文件夹设为
    demofolder

    • 如果不起作用,请尝试在其他应用程序(如WinZip或7-Zip)中打开该文件

    • 对于macOS,您可以尝试在终端中运行
      unzip
      (位于
      /Applications/Terminal.app
      ),其中包含一个或多个参数:要解压缩的文件+可选参数。有关文档和参数,请参见
      man unzip

  • 在上一点中所述的相同文件夹中下载并解压缩该zip文件

  • 打开命令提示符(或终端),将当前目录更改为在上一点中创建的文件夹,键入命令
    d2j-dex2jar.bat classes.dex
    ,然后按enter键。这将在同一文件夹中生成
    classes-dex2jar.jar
    文件

    • macOS/Linux用户:
      d2j-dex2jar.bat
      替换为
      d2j-dex2jar.sh
      。换句话说,在终端中运行
      d2j-jar2dex.sh classes.dex
      ,然后按enter键
  • 下载并解压缩它,然后启动(又称双击)可执行文件/应用程序

  • 在JD-GUI窗口中,将生成的
    classes-dex2jar.jar
    文件拖放到其中,或者转到
    file>openfile…
    浏览jar

  • 接下来,在菜单中,转到
    文件>保存所有源文件
    (Windows:Ctrl+Alt+S,macOS:⌘+⌥+S) 。这将打开一个对话框,询问您在何处保存一个名为“classes-dex2jar.jar.src.zip”的zip文件,该文件由所有包和java文件组成。(您可以重命名要保存的zip文件)

  • 解压缩该zip文件(
    classes-dex2jar.jar.src.zip
    ),您应该可以获得应用程序的所有java文件

  • 步骤3:从APK获取
    xml
    文件
    • 有关更多信息,请参阅以获取安装说明和更多信息
    • 窗口:

    • 下载和并将其放在同一文件夹中(例如,
      myxmlfolder
    • 将当前目录更改为
      myxmlfolder
      文件夹,并将apktool jar文件重命名为
      apktool.jar
    • .apk
      文件放在同一文件夹中(即
      myxmlfolder
    • 打开命令提示符(或终端),将当前目录更改为存储
      apktool
      的文件夹(在本例中为
      myxmlfolder
      )。接下来,键入命令
      apktool if framework-res.apk

      我们在做什么