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

2017-08-29 10:34 阅读 1,143 次 评论 0 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/2470.html

摘要:

学习反编译的目的,一是参考别人某些栏目的实现过程(通常核心内容会被混淆,参考不了),二是了解反编译的原理提高自身开发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文件,为了保证源码的安全,接下来学习混淆相关的知识。

关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/2470.html
如何选购合适的万网云服务器ECS? 如何选购合适的万网云服务器EC
Android Spinner控件自定义样式分析 Android Spinner控件自定义样式
Android SDK “Error when loading the SDK” Android SDK “Error when
HashMap方法解析 HashMap方法解析

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情