反编译apk文件查看源码,反编译apk获取资源

反编译apk文件查看源码,反编译apk获取资源之前做过反编译apk文件的,原本想的就是应该做下总结的,后来。。。不知道后来发生了什么,一定不是因为我懒了。总之,今天领导让我研究下一个口碑比较好的app,看下它某个功能怎么实现的,用的什么技术,又扒拉了半天才找好工具去查看,就觉得还是有必要做个总结的。废话少说,下面开始:    此次主要用到了三个工具,dex2jar,JD-GUI,apktool,其实还有一个windows下的批处理工具…

之前做过反编译apk文件的,原本想的就是应该做下总结的,后来。。。不知道后来发生了什么,一定不是因为我懒了。总之,今天领导让我研究下一个口碑比较好的app,看下它某个功能怎么实现的,用的什么技术,又扒拉了半天才找好工具去查看,就觉得还是有必要做个总结的。废话少说,下面开始:

        此次主要用到了三个工具,dex2jar,JD-GUI,apktool,其实还有一个windows下的批处理工具,最近已经和apktool打包到一起了,下面说说这几个工具具体怎么用。

先附上下载地址,以免你们像我一样又找了好久:

dex2jar下载链接: https://pan.baidu.com/s/13_IKg7AMBOzfeUbSNOsCPw 密码: 4f83

JD-GUI下载链接: https://pan.baidu.com/s/17zTC28C7oDKmUpvmb9eBnQ 密码: 4fmi

apktool下载链接: https://pan.baidu.com/s/1xECSBEvcVSbi7EBqz7T_VA 密码: qsij

三个工具一起打包下载地址http://download.csdn.net/download/yeluofengchui/10272356

以上地址长期有效,如果下载失败请私信我或者下面留言。

第一步:首先呢,拿到一个apk直接拿解压缩工具解压了,就能看到如下图所示的工程目录结构

反编译apk文件查看源码,反编译apk获取资源

lib下有引用的三方类库(.so资源),.java代码和.jar中的代码都被压缩到了classes.dex中了,res和assets中有想要的资源等。这个时候去打开AndroidManifest或者res中的layout、string等.xml资源,一定会看到一堆乱码,这个时候我们需要用到的是apktool。

第二,使用apktool反编译xml文件

将下载的apktool压缩包解压出来的三个文件aapt.exe,apktool.bat,apktool.jar放到同一个文件夹,把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。PS:其实放哪里都行,重点是添加到系统的环境变量中方便调用;另外,这些文件夹包括后面其它文件的目录,都要采用英文,以免不必要的麻烦。在DOS命令行中输入:apktool d xx\yy.apk yy,得到yy文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。包括strings.xm,AndroidManifest.xml等文件都可以正常查看了。

第三,使用dex2jar反编译dex文件

下载的dex2jar的压缩包解压后,会发现这个压缩包里可不止dex2jar,还有jar2dex的反向编译等工具,

反编译apk文件查看源码,反编译apk获取资源

然后,也将这个文件夹目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。

DOS行命令如下:d2j-dex2jar.bat  xx\classes.dex(xx是classes.dex文件所在的路径)。

生成的jar如图所示

反编译apk文件查看源码,反编译apk获取资源

然后反编译jar包

    得到jar包后,下载自已喜欢的反编译工具,推荐使用JD-GUI,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便。

打开压缩文件JD-GUI,运行jd-gui.exe,打开上面生成的jar包,即可看到源代码了。截图如下:

反编译apk文件查看源码,反编译apk获取资源

文章来源:https://www.jianshu.com/p/1913695de091

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/35286.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注