反编译APK获取代码&资源

简介: "反编译Apk",看上去好像好像很高端的样子,其实不然,就是通过某些反编译软件,对我们的APK进行反编译,从而获取程序的源代码,图片,XML资源等文件;不知道你有没有这样做过,看到一个别人的一个APP界面做得很精美,或者你看上别人的图片素材,简单点的,我们可以下载别人的APK,然后改下后缀名,改成xxx.zip,然后解压。

"反编译Apk",看上去好像好像很高端的样子,其实不然,就是通过某些反编译软件,对我们的APK进行反编译,从而获取程序的源代码,图片,XML资源等文件;不知道你有没有这样做过,看到一个别人的一个APP界面做得很精美,或者你看上别人的图片素材,简单点的,我们可以下载别人的APK,然后改下后缀名,改成xxx.zip,然后解压。

我们随便找了一个apk进行解压:

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

但是,这种方法,获得的只会是一些.png,或者.jpg这样的位图文件资源,如果是xml类的资源,打开我们会发现是乱码,并且假如我们想看APK程序的Java代码,也是行不通的,因为他们都打被打包到classes.dex文件中!但是反编译可以解决你的需要~另外,切勿拿反编译来做违法的事,比如把人家的APK重新打包后使用自己的签名然后发布到相关市场...另外,我们是参考别人的代码,而不是完全拷贝!!!切记!!

1.要准备的三个工具

  1. apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件
  2. dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)
  3. jd-gui:查看2中转换后的jar文件,即查看Java文件为了方便各位读者,这里将三个打包到一起放到云盘中,又需要的可以进行下载。
  4. 反编译相关的三个工具.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发布都会进行混淆,然后进行一些加密,或者使用第三方的加密平台,用的比较多的"爱加密",有兴趣的也自行百度查看更加详细的介绍!

相关文章
|
安全 Java 图形学
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
126 0
|
Ubuntu Java Shell
反编译apk文件,得到其源代码的方法!!
反编译apk文件,得到其源代码的方法!!
213 1
|
Java
Mac环境下反编译apk
Mac环境下反编译apk
241 0
|
编解码 Android开发
分享电音极速版助手APK和源代码
分享电音极速版助手APK和源代码
239 0
|
编解码 Android开发
分享快手极速版助手APK和源代码
分享快手极速版助手APK和源代码
858 0
|
安全 Java 图形学
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的包进行代码加固和混淆。
|
安全 Android开发
反编译之将脱壳后的dex文件重新打包成apk
反编译之将脱壳后的dex文件重新打包成apk
2035 0
|
Java Android开发
安卓apk包反编译
拿到安卓的apk包如何,如何反编译呢。流程如下
559 0
安卓apk包反编译
|
Java 开发工具 Android开发
Android反编译apk
总的来说就是先将apk文件解压,得到.dex文件,然后将.dex文件转为.jar文件,最后将.jar转为.java文件(就是将.jar文件中的.class文件转为.java文件)
439 0
Android反编译apk
|
Android开发 开发者
Android Split APK介绍
【2月更文挑战第5天】

热门文章

最新文章

  • 1
    【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
    208
  • 2
    Android历史版本与APK文件结构
    416
  • 3
    Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒,如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡
    91
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    144
  • 5
    【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
    299
  • 6
    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    118
  • 7
    apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
    130
  • 8
    使用Kivy创建“Hello World”应用并打包成APK
    808
  • 9
    使用keytool查看Android APK签名
    894
  • 10
    解决android apk安装后出现2个相同的应用图标
    566