专栏首页恩蓝脚本Android APK反编译技巧深入讲解

Android APK反编译技巧深入讲解

导言:

在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取。首先我们应当了解的是,对于反编译我们一共需要三个工具,它们分别是:APKTool,dex2jar,和jd-gui。APKTool:用于解析apk的res文件以及AndroidManifest.xml文件dex2jar:用于把apk解压后生成的classes.dex文件解析为后缀为jar的文件,与下面的jd-gui工具联合使用则可以得到我们的核心Java代码jd-gui:将上一步所得到的jar文件解析为Java文件,从而得到软件的核心代码

这就是反编译的核心流程,凡是没有被MD5算法加密,或者加固过的APK都可以利用这个方法来进行反编译破解。

第一步.来到官网下载APKtool

网址:https://ibotpeaches.github.io/Apktool/install/

界面如下:

我们需要把下载的两个文件都放在同一个文件夹下,这个文件夹可以自己进行选择或者新建,本人这里在E盘下创建了一个androidsafe的文件夹用于保存这个工具,点击第二个链接之后会出现如下界面:

第二步.将需要进行反编译的文件放到刚刚我们创建好的那个文件夹下

此时我们的E:/androidsafe文件夹下只有这三个文件,同时我们也需要把下载的第二个文件apktool-2.4.0.jar更改成apktool.jar,不然是无法运行这个工具的。同时把需要反编译的apk文件移动到这个文件夹下。

第三步.开始反编译

键盘输入win+r,进入cmd的windows命令行模式。

利用cd命令将命令行模式进入刚刚创建的这个文件夹下,

再输入:

apktool d 您拿到这个文件夹下的需要反编译的apk文件名.apk

如下图所示:

这样我们的反编译过程就完成了。

我们再来看看刚刚我们所创建的文件夹就会多出一个名为appdebug的文件了:

文件目录如下:

可以说是十分成功了。其中的res文件夹是程序当中的所有资源文件,smali文件夹下存放了程序所有的反汇编代码。apktool这个工具主要是用来解析资源res和资源AndroidManifest.xml的,除此之外的,我们还需要另外的工具来解析Java源码,利用下以下两个工具则可以用于解析Java源代码,它们分别是:dex2jar和jd-gui.

第四步.将apk文件解析为后缀为dex的文件

1.首先我们把刚刚用于解析的apk文件的后缀改为zip,然后随便用一个你已经安装过的压缩包软件把它解压就可以了

2.解压之后你会在解压之后的文件当中发现一个名为:classes.dex的文件,这样就把apk的dex文件得到啦!如下图所示:

第五步.利用dex2jar工具把dex文件解析成后缀为jar的文件

dex2jar的下载网址是:https://bitbucket.org/pxb1988/dex2jar/downloads/

1.下载到我们刚刚安装apktool的文件夹下,然后解压,更改解压后的文件名为dex2jar

2.将刚刚所得到的classes.dex文件剪切到dex2jar文件夹下,如下图所示:

3.打开命令行cmd模式,利用cd命令将目录切换到dex2jar的文件夹下,同时键入以下代码:

d2j-dex2jar.bat classes.dex

这个时候返回文件夹,立刻就可以看到在classes.dex文件夹下就多了个jar文件了。

第六步.将jar文件解析为Java文件

下面就来到最激动人心的一步,得到我们的Java文件啦!

首先下载jd-gui,网址如下:

https://github.com/java-decompiler/jd-gui/releases/

这里windows版本的就直接下载后解压,解压后点击后缀为exe的可执行文件打开就是了,再将jar文件拖进去就好啦!: 如下图所示:

反编译的步骤还是挺简单的,但是如果被加密后再进行反编译难度就大了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.zalou.cn复制
如有侵权,请联系 yunjia_community@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • android开发书籍推荐大全

    android开发书籍推荐大全 ? 写在前面 首先,不提供电子版本的下载,请大家自行百度,如果还是找不到,可以加微信联系我。 再次很感谢写...

    用户1263308
  • Android 反编译apk 详解

    测试环境:         win 7  使用工具:      CSDN上下载地址: apktool (资源文件获取)  下载        dex2jar...

    庞小明
  • Android开发实现Launcher3应用列表修改透明背景的方法

    本文实例讲述了Android开发实现Launcher3应用列表修改透明背景的方法。分享给大家供大家参考,具体如下:

    砸漏
  • Android APK反编译详解(附图)

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。

    阳光岛主
  • Android开发实现应用层面屏蔽状态栏的方法小结

    本文实例讲述了Android开发实现应用层面屏蔽状态栏的方法。分享给大家供大家参考,具体如下:

    砸漏
  • 《Android编程权威指南》之Android开发初体验

    基于流行的IntelliJ IDEA创建,Android Studio是用 于Android开发的一套集成开发工具。

    用户8928967
  • Android逆向分析从入门到深入

    学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里...

    用户7118204
  • Android Gradle实用技巧(三) | 批量控制生成的APK文件名

    在讲批量修改APK文件名之前,我们讲一下关于Android Gradle插件集成的Task任务问题。普通的Java工程比较简单,因为它有一个有限的任务集合,而且...

    飞雪无情
  • Android逆向分析从入门到深入

    学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里...

    望天
  • Android逆向分析概述

    学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里...

    望天
  • 破解第一个Android程序

    破解Android程序的方法通常是:使用ApkTool反编译APK文件,生成smali格式的反汇编代码;通过阅读smali文件的代码来理解程序的运行机制,找到突...

    用户1631416
  • Android 逆向--BUFF | Smali 介绍与学习

    静态分析反编译代码往往是逆向分析的第一步,在对代码逻辑大致了解后,我们就可以使用动态分析的方法验证猜想、加速分析和实现破解。

    Python编程与实战
  • 一款 APK 是怎么诞生的?

    作者:hockeyli,腾讯 PCG 客户端开发工程师 一、 APK 组成解析 在开始解析 Android 构建流程之前,我们先来看下构建的最终产物 APK 的...

    腾讯技术工程官方号
  • 浅谈微信smali注入

    搞android搞了几年也没搞出个啥牛逼app出来,眼看时下最火的app微信如此火热,实在想搞搞它,索性就想着给它加点东西进去。

    流川疯
  • Apk 反编译前期了解

    LZ-Says:学习之路,似乎枯燥乏味,唯有耐着性子,独自前行,当光明笼罩的那一刻,一切,也仿佛明亮了许多。

    HLQ_Struggle
  • Android Hook技术的学习经历分享

    还记得前两天发送的短文吗?近一段时间一直在看android hook相关的技术,到今天算是入门了吧!

    大愚
  • android apk 防止反编译技术第三篇-伪加密

    经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法。前两篇我们讲了加壳技术和运行时修改字节码,如果有不明白...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券