Android 反编译工具 apktool ,smali2java, dex2jar , jd-gui ,jadx-gui 的安装与使用

1.apktool 

下载地址 https://ibotpeaches.github.io/Apktool/install/

按照上面的步骤

第一步:就是要让我们下载apktool.bat,把鼠标移至wrapper script上,然后右击,链接另存为。

第二步:下载apktool.jar文件,点击find newest here,跳到下载页,我们能尽量下载最新版本。 

第三步:把你下载来的jar文件重新命名为:apktool.jar。 

第四步:官网建议你把apktool.bat、apktool.jar放到C盘的Windows下。我们就放到Windows下

然后我们 调出CMD   cd 到 我们的apk所在的路径下。(我在F 盘 apks  文件夹中放了一个hzApp.apk)

F:\>cd apks  执行  apktool d hzApp.apk

其中smali文件夹中就是源码,可惜 这样是看不见的,但是我们依然可以看到 工程中的各种资源文件。

2.smali2java

下载地址 http://www.hensence.com/cn/smali2java/#Download

smali2java是一个将smali代码反编译成java代码的工具。

什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言。使用baksmali或apktool可以将Android应用程序包(apk或jar)反编译为smali代码。

smali2java工具基于apktool (baksmali )生成的smali文件,依赖于smali文件中的代码行数(.line关键字)和变量别名(.local关键字)等信息,可以最大程度还原原始的java代码。还原出的java代码将具有原始的变量命名,代码的顺序也与原始的java代码保持一致。因此,本工具也具有局限性,仅适用于带有行数和变量别名信息的smali文件(java编译器的编译选项可以在生成的字节码中剔除这些信息)。

从网站看的信息发现其存在一定的局限性没有 行数和变量名的smali 文件 我们就看不到Java 源码了、工具用起来也简单,加压执行exe 文件 打开我们的 apk 包就好。

 

3.dex2jar 和 jd-gui 这两个工具要配合使用。

dex2jar 看名字 就知道是吧 dex 文件 转换为 Jar 文件  而 jd-gui  工具就是查看源码的工具了

将APK直接解压(修改后缀名为.zip,然后解压)后,可以看到目录下包含一个classes.dex文件。如下图所示,而我们的源码就在这个classes.dex  文件中。

然后我们 安装 dex2jar

下载地址:https://sourceforge.net/projects/dex2jar/

加压后 进入文件夹

现在把上面的classes.dex文件拷贝到该目录下。 cmd窗口进入dex2jar-2.0,然后输入命令:d2j-dex2jar.bat classes.dex回车。如下图

然后 文件夹中就多了 classes-dex2jar.jar  文件。

安装 jd-gui 

下载地址: http://jd.benow.ca/ 。

 

解压 后有一个 jd-gui.exe文件 我们打开后直接在里面打开 之前的 classes-dex2jar.jar 文件 。我们就可以看到 Java 源码了。

4.最后介绍一个工具  jadx-gui   把dex2jar 和 jd-gui 这两个工具性能结合起来,简单方便 。

下载地址 https://bintray.com/skylot/jadx/releases/v0.8.0#files

解压后里面 bin 文件夹下有个 jadx-gui.dat  批处理文件 双击打开(最新版的要Jdk 1.8) 然后直接打来我们的apk 文件就可以看到 源代码 。超级好用。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值