史上最全破解安卓APK和反编译

目录

准备工具

Apktool

安装 Apktool

反编译 Apk

dex2jar-2.0使用

jd-gui使用:


准备工具

  • Apktool
    反编译 xml 文件和 dex 文件,并可以将编译后的项目重新打包成 apk。
    官方下载地址: Apktool
  • dex2jar
    将 classes.dex 转换为「.jar」文件)
    官方下载地址: dex2jar
  • jd-gui
    查看「.jar」文件
    官方下载地址: jd-gui

Apktool

我们可以通过 Apktool 可以将 apk 文件进行反编译,但是直接把 apk 的扩展名改成「.zip」也可以对其进行解压并得到一些资源文件。

  • META-INF 里保存 App 的签名信息
  • classes.dex  
    .dex 是 Dalvik 虚拟机上的可执行文件,需要使用 dex2jar 将其转换为 jar 文件
  • AndroidManifest.xml
    Android 清单文件,向 Android 系统提供应用的必要信息。
  • assets
    存放一些资源文件字体,声音等。
  • lib
    存放第三方库
  • original
    存放未经过反编译的等 AndroidManifest.xml 文件
  • res 
    存放资源文件,例如图片,颜色,字符等。
  • smali
    smali 里存放的是 java 编译成的 smali 代码,smali 相当于 Android 虚拟机上运行的语言。

直接解压可以得到一些资源文件,但是 AndroidManifest.xml 和其他的 xml 文件都是乱码,通过 Apktool 进行反编译,可以最大限度的还原这些文件的内容。

安装 Apktool

Windows :

  • 「apktool.jar」「apktool.bat」移动到 windows 目录(一般在 C://windwos 下)
  • 在命令行中输入 
$ apktool

如果出现

则说明安装成功,若没有出现,则需要把「apktool.jar」、「apktool.bat」的路径添加到系统的环境变量中。

Mac OS:

  • 「apktool」「apktool.jar」移动到 /usr/local/bin目录下
  • 在命令行中 cd 到 /usr/local/bin中然后分别输入下面两条命令
$ chmod a+x d2j_invoke.sh
$ chmod a+x d2j-dex2jar.sh
  • 在命令行中输入
$ apktool

出现

则安装成功

反编译 Apk

  • cd 到 apk 的目录下
  • 输入
$ apktool d test.apk

运行完成后,得到一个包含资源文件和代码的文件:

注意:
此时 dex 文件直接反编译成了 smali 文件,而我们需要的是 .dex 文件。

此时再运行:

$ apktool d -s -f test.apk

-d 反编译 apk 文件
-s 不反编译 dex 文件,而是将其保留
-f 如果目标文件夹存在,则删除后重新反编译

此时得到这样的文件夹:

dex2jar-2.0使用

解压后的图片,将反编译后的classes.dex放进去,假如有多个就放多个

执行命令

d2j-dex2jar.bat classes.dex

最后会生成:

jd-gui使用:

  • 21
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
ApkTool』简要介绍 提供1.3.5测试版源码。 此程序在其基础上完善并添加一些功能,此版本号定位2.0 最终版。 定为最终版的原因是支持动态加载最新的内置工具: ..\Bin\*.*目录下的所有工具如果有最新版本的,替换Bin目录内的程序即可应用最新版。 [注意:不要更改目录内的文件名,否则不会被加载。],判断是否使用最新版本的程序, 可以看启动日志中每个文件的路径。日志内容如下: 加载apktool.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\apktool.jar 加载aapt.exe的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\aapt.exe 加载signapk.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\signapk.jar 加载testkey.pk8的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.pk8 加载testkey.x509.pem的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.x509.pem 加载baksmali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\baksmali.jar 加载smali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\smali.jar 加载dex2jar.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\dex2jar.jar 加载asm-debug-all.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\asm-debug-all.jar 加载commons-io.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\commons-io.jar 加载slf4j-simple.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-simple.jar 加载slf4j-api.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-api.jar ============================================================== 华丽的分割线 ============================================================== 使用说明: =========================================================== 使用环境:须安装 java,下载地址:http://www.java.com/zh_CN/ 1、反编译APK 拖拽APK程序到"反编译APK"按钮前的输入区,点击"反编译APK"按钮 2、重建APK 把第一步得到 文件夹 拖拽到"重建APK"按钮前面的输入区,点击"重建APK"按钮, 至此会自动生成已经签名好的"XXOO(已签名).apk" 3、签名 拖拽APK程序到"签名"按钮前的输入区,点击"签名"按钮,自动生成已经签名好的"XXOO(已签名).apk" 4、反编译dex 拖拽dex文件或odex到"反编译dex"按钮前的输入区,点击"反编译dex"按钮, 会在dex文件所在目录外生成一个与dex文件名相同的目录 5、重建dex 拖拽要重建的目录到"重建dex"按钮前的输入区,点击"重建dex"按钮,会生成与目录名相同的dex文件 6、dex转jar 拖拽dex文件或odex到"6、dex转jar"按钮前的输入区,点击"6、dex转jar"按钮, test.dex 会生成 test.dex.dex2jar.jar 文件 7、jar,class转java 拖拽保护class的目录,或.class文件或 jar文件到"jar,class转java"按钮前的输入区,点击"jar,class转java"按钮, 会生成相应的 java文件。 ========================== 内置软件版本: | apktool 1.4.3 | aapt r04 | baksmali 1.3.2 | smali 1.3.2 | dex2jar 0.0.7.9 | asm-debug-all 3.2 | commons-io 2.0 | slf4j 1.5.6 | jad 1.5.8e2 | ========================== ^_^ Enjoy! 2012.3.16 By:漏网之鱼 QQ:530747686
Android APK反编译教程是一个关于如何将已编译Android应用程序(APK)还原为原始的Java源代码和资源文件的指南。反编译APK可以帮助开发人员了解其他应用程序的实现细节,学习和借鉴他们的设计思路和技术方法。 以下是一个基本的Android APK反编译教程的步骤: 1. 下载反编译工具:首先,你需要下载一个反编译工具,例如dex2jarapktool或Jadx等。这些工具可以从互联网上免费获取。 2. 安装和配置工具:解压缩下载的工具,并按照其文档中的说明进行安装和配置。确保将工具所在的目录添加到系统的环境变量中,以便可以在命令行中调用它们。 3. 反编译APK文件:在命令行中使用反编译工具将APK文件转换为可读的源代码。例如,使用dex2jar工具可以运行`d2j-dex2jar.bat yourapkfile.apk`命令将APK文件转换为JAR文件。 4. 反编译资源文件:使用apktool工具反编译APK文件的资源文件,以便可以查看和编辑应用程序的布局、图片和其他资源。例如,运行`apktool d yourapkfile.apk`命令将APK文件反编译到当前目录中的一个文件夹中。 5. 分析源代码和资源:通过查看反编译得到的Java源代码和资源文件,你可以深入研究和理解应用程序的实现细节。这些文件将在反编译的目录中找到,并使用文本编辑器或开发工具打开。 需要注意的是,反编译APK文件是为了学习和研究目的,以及对自己开发的应用程序进行检查和测试。在商业和法律层面上,我们不鼓励使用这些技术来获取未授权的应用程序源代码和资源。 总之,Android APK反编译教程可以帮助开发人员深入了解其他应用程序的实现细节,学习和借鉴他们的设计思路和技术方法。通过反编译APK文件,我们可以将已编译的二进制应用程序还原为可读的源代码和资源文件,以便进行更多的探索和分析。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值