1.11 反编译APK获取代码&资源
本节引言 “反编译 APK”这件事,乍一听似乎挺高深,甚至有点技术门槛很高的感觉,但实际上并没有那么神秘。说白了,它就是借助一些反编译工具,把 APK 拆开来分析,从中拿到程序源码、图片资源、XML 配置文件等内容。这样的操作,不少人多少都接触过:比如看到别人的 APP 界面做得很精致,或者正好看中
本节引言
“反编译 APK”这件事,乍一听似乎挺高深,甚至有点技术门槛很高的感觉,但实际上并没有那么神秘。说白了,它就是借助一些反编译工具,把 APK 拆开来分析,从中拿到程序源码、图片资源、XML 配置文件等内容。这样的操作,不少人多少都接触过:比如看到别人的 APP 界面做得很精致,或者正好看中了其中的图片素材,最简单的办法其实就是先把对方的 APK 下载下来,再把后缀名改成 xxx.zip,接着直接解压。下面就是随手解压的一个 APK:

我们可以打开res目录,获取里面的图片素材

不过,这种方式拿到的基本只是.png、.jpg这类位图资源。要是碰到xml这类资源,打开后往往就是一堆乱码;再比如,想直接查看APK里的Java代码,同样也走不通,因为这些内容早就被统一打包进classes.dex文件里了。也正因为如此,反编译才真正派得上用场。话说在前面,这项技术只能用于合法、合规的学习和分析场景,千万不要拿它做违法的事,比如把别人的APK重新打包、换上自己的签名,再发布到相关市场。还有一点也得记住:参考别人的代码可以,但绝不是原样照搬,这个边界一定不能踩。
1.要准备的三个工具
- apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件
- dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)
- jd-gui:查看2中转换后的jar文件,即查看Java文件 为了方便各位读者,这里将三个打包到一起放到云盘中,又需要的可以进行下载: 反编译相关的三个工具.zip
2.使用apktool反编译APK获得图片与XML资源:
把下载好的apktool解压后,我们可以看到下述文件(忽略那两个csdn,一个是反编译的apk,一个是反编译后文件):
接下来,双击cmd.exe,来到命令行,键入: apktool.bat d csdn.apk 即可,Enter回车:
然后就可以看到生成的csdn文件夹,里面就有我们想要资源
好的,就是XML资源到手了是吧!图片素材也到手了!
3.使用dex2jar将classes.dex转换成jar文件:
把下载好的dex2jar文件夹解压,apk解压后中的classes.dex复制到dex2jar.bat所在的目录下:
打开cmd,来到这个目录下:键入:d2j-dex2jar.bat classes.dex
接着我们可以看到,生成了一个jar包:
好的,转换完成!
4.使用jd-gui查看jar包中的Java代码:
好的,打开jd-gui的文件夹
打开后,打开我们3中转换后的jar包,我们可以看见里面的代码:
csdn的客户端竟然不混淆代码...可能是本着开源的精神吧,给我们学习代码吧!一般的话,apk发布都会 进行混淆,然后进行一些加密,或者使用第三方的加密平台,用的比较多的"爱加密",有兴趣的也自行百度查看更加详细的介绍!
本节小结
好的,关于APK的反编译就介绍到这里,相信你已经摩拳擦掌想要试试了,那就试试吧,最后提醒一句,别做坏事!尊重别人的劳动成果!另外,关于第一大章环境搭建相关以及一些常用开发技巧就到这里,下一节开始我们就来进行本系列教程的第二章——Android中的常用UI控件的学习了!因相关的基本控件较多,估计有几十个,如果一直学控件可能没什么意思,可能并行写教程,每天学一个控件 + 一点其他的知识点这样,笔者要构思构思,敬请期待~谢谢~
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

接下来,双击cmd.exe,来到命令行,键入:
apktool.bat d csdn.apk 即可,Enter回车:


好的,就是XML资源到手了是吧!图片素材也到手了!

好的,转换完成!
csdn的客户端竟然不混淆代码...可能是本着开源的精神吧,给我们学习代码吧!一般的话,apk发布都会
进行混淆,然后进行一些加密,或者使用第三方的加密平台,用的比较多的"爱加密",有兴趣的也自行百度查看更加详细的介绍!












