学习反编译的目的,一是参考别人某些栏目的实现过程(通常核心内容会被混淆,参考不了),二是了解反编译的原理提高自身开发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
3
第五步,如果解压包不包含classes.dex文件,在上述命令行添加-s,表示禁止将dex文件解码成smali,如下图:
二、dex2jar工具:打包jar文件
1
使用dex2jar工具将apktool工具解压的dex文件转换成jar文件,搜索并下载dex2jar或者前往官网
2
打开cmd命令行,切换到dex2jar所在目录,运行命令:d2j-dex2jar.bat
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文件,方便以后学习代码混淆功能
上一篇:页面一直是Flyme怎么办
下一篇:雷电模拟器怎么删除游戏?