如何提取apk文件的代码

其实我试图提取一个名为cloudfilz.apk的.apk文件的代码,并想操纵其源代码,所以我按照下面给出的步骤:

使一个新的文件夹,并把.apk文件(你想解码)现在重命名这个.apk文件扩展名为.zip(例如:从filename.apk重命名为filename.apk.zip),并保存它..现在你得到类.dex文件等…在这个阶段,你可以看到可绘制的,但不是XML和Java文件…所以继续…

第2步:

现在解压缩这个zip文件在同一个文件夹(在这个例子或案例新的文件夹)。 现在从这个链接http://code.google.com/p/dex2jar/下载dex2jar并将其解压缩到相同的文件夹(在本例中为新文件夹)…..现在打开命令提示符并进入该文件夹(在这种情况下新的文件夹)….达到写“dex2jar classes.dex”,并按下input…..现在你得到classes.dex.dex2jar文件在同一个文件夹……

=>问题:-I是成功实现步骤1,但在步骤2当我执行dex2jar classes.dex我得到一个错误命令提示符java.lang.UnsupportedClassVersionError ,我知道这是由于我安装的JDK版本和类之间的不兼容.dex jdk版本号如此卡在这里和dnt有出路…

如何从.apk文件获取源文件(java文件)?

正如我们现在知道的apk文件只是一个包含所有程序资源文件的zip文件,我们现在可以轻松地从apk文件中获取java代码。 以下是从apk文件中获取java代码的步骤。

Step 1:Renaming .apk file

  • 重命名.apk文件,扩展名为.zip(例如,让文件为“demofile.apk”,然后重命名为“demofile.apk.zip”)

Step 2:Getting java files from apk

  • 现在提取特定文件夹中重命名的zip文件,例如让该文件夹为“demofolder”。
  • 现在从windows链接下载dex2jar ,然后解压缩文件夹“demofolder”中的zip文件。

  • 现在打开命令提示符并转到上一步创build的文件夹,input命令“dex2jar classes.dex”并按回车。这将在同一个文件夹中生成“classes.dex.dex2jar”文件。

  • 现在从链接下载java反编译器,解压缩并启动(双击)jd-gui.exe

  • 从jd-gui窗口浏览在demofolder中生成的“classes.dex.dex2jar”文件,这将通过src名称给出所有的类文件。

  • 现在从文件菜单中select“保存所有来源”,这将生成一个名为“classes_dex2jar.src.zip”的zip文件,其中包含所有包和java文件。

  • 提取该压缩文件(classes_dex2jar.src.zip),您将获得该应用程序的所有Java文件。

上述步骤将生成java files但获取xml文件执行以下步骤。

Step 3:Getting xml files from apk

  • 从链接下载apktoolapktool安装 ,并提取这两个文件,并将其放在同一个文件夹(例如“demoxmlfolder”)。

  • 将.apk文件放在相同的文件夹(即demoxmlfolder)

  • 现在打开命令提示符并转到存储apktool的目录(这里是“demoxmlfolder”),然后键入命令“apktool if framework-res.apk”
  • 以上命令应导致“框架安装…”
  • 现在在命令提示符下键入命令“apktool d filename.apk”(其中filename是apk文件的名称)
  • 这将在当前目录(这里是demoxmlfolder)中生成名称文件夹的文件夹,其中所有xml文件都将存储在res \ layout文件夹中。

或访问此链接 ….它一定会帮助你从APK文件中提取XML和源Java文件。 它为我工作。

任何来自市场的.apk文件或无符号的

  1. 如果你是从市场下载的apk,并从市场上签署安装Astro文件pipe理器。 打开“Astro”>“工具”>“应用程序pipe理器/备份”,然后select要备份到SD卡上的应用程序。 挂载电话作为USB驱动器,并访问“backupsapps”文件夹来查找目标应用程序的apk(让我们称之为app.apk)。 把它复制到你的本地驱动器中,同样是无符号.apk的情况。

  2. 从这个链接下载Dex2Jar zip: SourceForge

  3. 解压缩下载的压缩文件。

  4. 打开命令提示符并写入以下命令到达dex2jar exe文件所在的目录,并将apk复制到同一个目录中。

    dex2jar targetapp.apk file (terminal上的./dex2jar app.apk)

  5. http://jd.benow.ca/从这个链接下载反编译器。;

  6. 用jd-gui打开'targetapp.apk.dex2jar.jar'文件>保存所有源以将jar文件中的类文件拖放到java文件中。

步骤1:

在这里输入图像描述 在这里下载dex2jar。 创build一个java项目并粘贴(dex2jar-0.0.7.11-SNAPSHOT / lib)jar文件。

将apk文件复制到java项目中

运行它,刷新项目后,你会得到jar文件。使用java反编译器,你可以查看所有的java类文件

第2步: 在这里下载java反编译器

点击这里这是一个很好的教程窗口/ 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 de-complier)从这里下载。

  5. framework-res.apk(位于你的android设备/系统/框架/)

程序:

  1. 重命名.apk文件并将扩展名更改为.zip,

它会变成.zip。

  1. 然后提取.zip。

  2. 解压缩下载的dex2jar-0.0.9.15.zip文件,复制内容并粘贴到解压缩文件夹。

  3. 打开terminal并改变目录解压缩“dex2jar-0.0.9.15”

– cd – sh dex2jar.sh classes.dex(这个命令的结果“classes.dex.dex2jar.jar”将会在你解压的文件夹本身中)。

  1. 现在,创build一个新的文件夹,并将“classes.dex.dex2jar.jar”复制到它。

  2. 解压缩“jd-gui-0.3.3.linux.i686.zip”并以全屏模式打开“Java Decompiler”。

  3. 点击打开的文件,并select“classes.dex.dex2jar.jar”到窗口中。

  4. “Java Decompiler”并转到文件>保存并将源文件保存在.zip文件中。

  5. 创build“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. 然后打开terminal并键入:

    – 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

    – apktool if framework-res.apk – apktool d .apk