Andorid开发之反编译工具apktool学习

2017-08-29 10:34 评论 0 条

摘要:

学习反编译的目的,一是参考别人某些栏目的实现过程(通常核心内容会被混淆,参考不了),二是了解反编译的原理提高自身开发APP的安全性(涉及代码混淆)。 实现对apk文件的反编译最简单的方式借助反编译三剑客:apktooldex2jarjd-gui,apktool的作用将apk文件解压(解压后的apk文件如下图),dex2jar的作用将解压出来的apk文件的.dex文件打包成jar形式,然后使用jd-gui浏览jar包的源码文件。

apktool解压apk文件

PS:使用apktool工具解压的apk文件,可以使用记事本直接打开;将.apk修改成.zip的方式,进行解压,无法使用记事本直接打开

一、apktool工具:解压apk文件

apktool工具区分不同的操作系统(Windows、Linux、Mac),下载地址:https://ibotpeaches.github.io/Apktool/install/ ,按照官网提示:

第一步,打开wrapper script文件,另存为apktool.bat文件,

第二步,下载其中一个版本apktool.jar文件,比如:apktool_2.2.4.jar

第三步,将下载的版本,重命名为apktool.jar并和apktool.bat存放同一目录

反编译apk文件

第四步,cmd切换到apktool目录运行命令:apktool d <path>.apk,对指定路径的apk的资源文件、源码文件解码,解码后的资源文件可以正常使用EditPlus打开。

反编译apk文件

第五步,如果解压包不包含classes.dex文件,在上述命令行添加-s,表示禁止将dex文件解码成smali,如下图:

防止dex文件解码smali

二、dex2jar工具:打包jar文件

使用dex2jar工具将apktool工具解压的dex文件转换成jar文件,下载地址:https://sourceforge.net/projects/dex2jar/files/ ,最新版本dex2jar-2.0,是一个zip压缩包的形式

dex2jar工具

打开cmd命令行,切换到dex2jar所在目录,运行命令:d2j-dex2jar.bat <path>.dex

反编译apk

在dex2jar根路径下生成对应的jar包文件,该文件统一命名为:classes-dex2jar.jar

反编译apk文件

三、jd-gui工具:辅助查看源码

classes-dex2jar.jar文件无法直接查看,借助jd-gui工具浏览classes-dex2jar.jar的源码文件。jd-gui工具的下载地址:http://jd.benow.ca/ ,下载jd-gui-windows-1.4.0.zip解压,双击运行jd-gui.exe,选择想要打开指定的classes-dex2jar.jar文件。

反编译apk文件

四、总结:

熟悉目前常用的反编译工具的使用,apktool用于解压apk文件,dex2jar用于将dex文件转换成jar文件,jd-gui用于浏览jar文件,为了保证源码的安全,接下来学习混淆相关的知识。

当前文章价值8.63元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/2470.html ,谢谢支持!

资源分享

深入理解接口的定义和意义 深入理解接口的定义和意义
Android应用微信分享与收藏功能实现 Android应用微信分享与收藏功能
Android开发之数据存储的四种方式:SharedPreferences Android开发之数据存储的四种方
解决Android SDK无法下载或下载慢相关问题 解决Android SDK无法下载或下