摘要:
学习反编译的目的,一是参考别人某些栏目的实现过程(通常核心内容会被混淆,参考不了),二是了解反编译的原理提高自身开发APP的安全性(涉及代码混淆)。 实现对apk文件的反编译最简单的方式借助反编译三剑客:apktool、dex2jar、jd-gui,apktool的作用将apk文件解压(解压后的apk文件如下图),dex2jar的作用将解压出来的apk文件的.dex文件打包成jar形式,然后使用jd-gui浏览jar包的源码文件。
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存放同一目录
第四步,cmd切换到apktool目录运行命令:apktool d <path>.apk
,对指定路径的apk的资源文件、源码文件解码,解码后的资源文件可以正常使用EditPlus打开。
第五步,如果解压包不包含classes.dex
文件,在上述命令行添加-s
,表示禁止将dex文件解码成smali,如下图:
二、dex2jar工具:打包jar文件
使用dex2jar工具将apktool工具解压的dex文件转换成jar文件,下载地址:https://sourceforge.net/projects/dex2jar/files/ ,最新版本dex2jar-2.0,是一个zip压缩包的形式
打开cmd命令行,切换到dex2jar所在目录,运行命令:d2j-dex2jar.bat <path>.dex
在dex2jar根路径下生成对应的jar包文件,该文件统一命名为:classes-dex2jar.jar
三、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
文件。
四、总结:
熟悉目前常用的反编译工具的使用,apktool
用于解压apk文件,dex2jar
用于将dex文件转换成jar文件,jd-gui
用于浏览jar文件,为了保证源码的安全,接下来学习混淆相关的知识。
当前文章价值5.64元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)