多语言展示
当前在线:153今日阅读:176今日分享:34

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

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

IDE开发工具:Android Studio

2

反编译工具:apktool、dex2jar、jd-gui

一、apktool工具:解压apk文件
2

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

3

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

二、dex2jar工具:打包jar文件
1

使用dex2jar工具将apktool工具解压的dex文件转换成jar文件,搜索并下载dex2jar或者前往官网

2

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

3

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

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

classes-dex2jar.jar文件无法直接查看,借助jd-gui工具浏览classes-dex2jar.jar的源码文件。搜索并下载jd-gui或前往官网下载jd-gui-windows-1.4.0.zip解压,双击运行jd-gui.exe,选择想要打开指定的classes-dex2jar.jar文件。

四、总结

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

注意事项
1

反编译工具重点在于学习如何保证代码安全,不可以用于损害他人利益

2

了解怎么反编译apk文件,方便以后学习代码混淆功能

推荐信息