Android APK反编译 apktool使用教程_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android APK反编译 apktool使用教程

Android APK反编译 apktool使用教程

 2017/12/1 15:04:48  宏岩翼佬  程序员俱乐部  我要评论(0)
  • 摘要:2017年棋牌游戏突然就火了,正所谓春江水暖鸭先知本猿处在软件行业中就能清晰的感受到市场的变化,最近老家那边也是玩的风生水起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)工具介绍:apktool作用:主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)dex2jar作用
  • 标签:android 使用 编译 教程

 

2017年棋牌游戏突然就火了,正所谓春江水暖鸭先知本猿处在软件行业中就能清晰的感受到市场的变化,最近老家那边也是玩的风生水起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路

(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)

工具介绍:
apktool作用:主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)
classes.dex转化成jar文件)">dex2jar作用:将apk反编译成Java源码(classes.dex转化成jar文件)
jd-gui作用:用来查看APK中classes.dex转化成出的jar文件,即源码文件

版本apktool用法:">2017年12月1日新版本apktool用法:

1.下载两个文件apktool.bat和apktool.jar(这个如果你下载的文件有版本号,比如apktool_2.3.0.jar,就要改名字为apktool.jar),这里我已经打包好了传到了我的CSDN(http://download.csdn.net/download/qq_36272276/10140306 ),直接下载就OK了;
windows下面,放到这里是可以全局进行使用(我是windows系统,其他系统按照自己的来)如下图:">2.然后把上面两个文件解压放到C:\Windows下面,放到这里是可以全局进行使用(我是windows系统,其他系统按照自己的来)如下图:

使用方法">3.使用方法

把要解压的apk文件放在自己任意一个盘的目录下,在apk的目录下,按住shift+鼠标右键打开cmd黑窗口 如下图:

接下来输入官方给的命令

javascript hljs">研究吧!
</code></pre>">//当输入完这两个命令后
apktool d test.apk
apktool b test
//出现如下图一样的说明就反编译成功了,在他的同级目录下就多出了一个文件夹,里面就是反编译出来的源码,具体有啥我就不细说了哈,自己慢慢研究吧!

4.Apk反编译得到Java源代码

下载上述工具中的dex2jar(http://www.3jyy.cn/ziyuan/dex2jar-2.0.zip) 和 jd-gui(http://www.3jyy.cn/ziyuan/jd-gui-0.3.3.windows.zip) ,解压
将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-2.0文件夹内,在命令行下定位到d2j-dex2jar.bat所在目录(现在这个目录增加了许多命令,一定要看清楚哦),输入

d2j-dex2jar.bat classes.dex

效果如下:说明就成功了 会看到同级目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

  • 通过反编译,你可以获知该应用用到了什么第3方的库文件,它的代码是如何编写的等等。
    然而,如果该APK进行了混淆处理,那么你看到的类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名,所以你可以想找到你所想得知的界面代码可能会十分费劲,找到了代码可能看起来也会很费劲,可是一个大体的思路会获得,有了这个思路,你就可以自己去尝试了。

 

发表评论
用户名: 匿名