如要转载,请贴出原地址:https://blog.csdn.net/Nobody_else_/article/details/83996441

众所周知,我们开发所用的手机App安装包都是apk文件,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件供用户安装,这时候就很难再看到开发这个应用时使用的资源文件以及代码了,所以就有了反编译这个东西。通过一些工具,还是可以将apk文件进行反编译的,反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等等。

注意:这里分享的反编译方法,不是鼓励大家去搞抄袭 搞破解 搞破坏,主要目的是为了促进开发者学习的,借鉴别人,提升自我

更新:快速反编译方法

目前反编译已经不需要像以前那么麻烦了,可以直接下载jadx GUI后打开,将需要反编译的apk安装包直接拖进去,即可自动完成(为工具开发者点赞,实在太是方便!)

下载 jadx GUI

这里我把工具打包好放在云盘了(如果资源挂了,可以评论区艾特我)

链接:https://pan.baidu.com/s/1vlVIfyZJ0g6QGJQUTzsJAA 
提取码:pvni

如果不想用百度云的话,就稍微花一点点积分在CSDN下载吧↓↓↓

工具包下载地址:https://download.csdn.net/download/Nobody_else_/12720408

下载完毕后,解压得到.exe运行文件,点击运行(有可能会失败,解决方法后面介绍),然后将要反编译的apk文件拖进去,就会得到反编译后的代码,如图

期间有可能遇到GUI打不开的情况,并报错:

最近在使用反编译时出现以下问题,特意更新一下博客

关于这个问题,网上很多帖子都说是注册表的问题,答案都千篇一律,解决方法介绍非常含糊不清,但是其中有一种能强制打开GUI的方法,下面进行介绍。

1.先将GUI的exe运行文件放到桌面

2.按住Shift,右键桌面空白处,选择在此处打开命令窗口

2.会出现以下窗口,输入java -jar jadx然后按Tab键补全,按Enter回车键,即可打开GUI

原博客地址,感谢Code for Coffee的分享:

https://blog.csdn.net/qq_24118527/article/details/88353808

传统反编译方法

一、工具下载

工欲善其事,必先利其器,得先下载好以下三个工具(提供官网、度盘、C站下载地址):

  1. apktool (获取文件,以提取出图片文件和布局文件进行使用查看
  2. dex2jar(获取源码,可以将classes.dex转化成classes_dex2jar.jar文件
  3. jd-gui  (查看源码,查看classes_dex2jar.jar文件内的源码

1.apktool下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

1.1然后选择最新版本,点击下载

1.2点击保存,开始下载

注:建议使用IE浏览器打开这个链接,因为作者在使用其他非自带浏览器时出现下载链接消失的情况(如下图),所以为了避免不必要的麻烦,直接用IE浏览器下载就好

1.3下载完成后会得到一个.jar文件

2.dex2jar下载地址:http://sourceforge.net/projects/dex2jar/files/

2.1点击下载最新版的

2.2这里会有一个读秒动作,耐心等待地秒完成即可自动下载

2.3下载完成后,会得到如图的压缩包:

3.jd-gui下载地址:http://jd.benow.ca/

3.1找到JD-GUI一栏

3.2选择要下载的的系统版本,我这里选择的事Windows版

3.3下载完成后,会得到另一个压缩包:

-----------------------------------------------这样我们所需要的工具就下载完成了-----------------------------------------------

有的开发者也许会遇到网页无法打开的情况,可以直接下载我整理好的工具包(如果资源挂了,可以评论区艾特我):

链接:https://pan.baidu.com/s/10c3ljZs1W75EUAknfcXrsQ 
提取码:js9q

如果不想用百度云的话,就稍微花一点点积分在CSDN下载吧↓↓↓

CSDN工具包下载地址:https://download.csdn.net/download/nobody_else_/11583041

二、Apk反编译流程

首先,为了方便操作,把之前下载的三个工具放在同一个文件里(位置自定,尽量放方便的地方):

下面是我放的位置

1.然后把dex2jar-2.0.zipjd-gui-windows-1.4.0.zip解压到当前文件夹

2.然后将你要反编译的安装包.apk文件复制到该目录下,准备好反编译:

2.1开始反编译

1.点击左下角 开始菜单,进入CMD命令行(直接按 Windows键 + R 后输入cmd):

2.进入到以上三个工具所在的文件位置:

3.输入“cd ”+文件位置(cd后面要有空格),然后按回车Enter:

4.然后继续输入工具所在的磁盘符号+“:”,我这里是G盘,所以输入“g:”,就会进入到工具所在的位置

接下来就是反编译的重要步骤了,运行apktool_2.3.4.jar工具,在电脑安装了java并且配置好jdk环境后(开发人员一般具备,非开发人员可以百度“jdk环境变量配置”自行操作),运行可执行jar包的命令如下:

java -jar jar包名.jar

而根据我电脑的工具文件位置和.apk文件的位置,可以接着“>”符号后面输入:

java -jar apktool_2.3.4.jar d -f G:\安装包\APK反编译\物流助手2.0.apk -o OK

意思是通过Java使用jar apktool_2.3.4.jar这个工具对G:\安装包\APK反编译\物流助手2.0.apk文件进行反编译,反编译得到的源码文件放在OK这个文件内

5.按回车Enter执行,等待完成(如图为完成状态)

6.回到文件夹,会看到工具包同级文件内生成了OK文件夹:

7.打开这个文件夹,就可以看到里面反编译得到的文件:

通过这种方法,如果能成功反编译,就可以直接跳到本文章后面,按照阅读源码部分来进行操作了。

经过一番努力,终于到了可以饱读代码的时刻了!

这样是否就已经完事了呢?然而并没有。。。这篇博客的标题清楚地说到了多种方法,另外的方法呢?不用着急接下来继续介绍。第二种方法主要针对上面无法成功反编译的情况:

使用上面的方法反编译,cmd小黑框显示:Input file (XXX) was not found or was not readable.

注:<XXX>是文件的名称

如果多次检查自己操作没有错的时候,可以修改apk文件的名字再试一次,如果还是不行的话就说明这个apk文件无法用上面的方法反编译了。那这时候怎么办呢?这就要用到下面介绍的classes.dex反编译方法了↓↓↓

classes.dex的反编译

一、下载新的工具dex2jar(这里dex2jar与上面已经下载的不一样,需要重新下载

这里我把工具打包好放在云盘了(如果资源挂了,可以评论区艾特我)

链接:https://pan.baidu.com/s/17uIKAssf_9kljzKyZOEQeQ 
提取码:fu7h

如果不想用百度云的话,就稍微花一点点积分在CSDN下载吧↓↓↓

工具包下载地址:https://download.csdn.net/download/nobody_else_/11583031

把下载好的工具包,解压开,发现有两个文件夹:dex2jar(和之前的不一样)和jd-gui(和之前的一样)

二、处理apk文件

这里依旧是以Fly.apk文件为例子演示:

1.将要反编译的apk文件后缀改成.zip(原来是.apk):

注:如果电脑不显示文件后缀,或者无法怎么修改后缀名的可以自行百度关键词:修改文件后缀名

2.弹出确认弹框,点击是

3.将刚改名得到的zip文件解压,找到里面的classes.dex文件并复制

4.打开文件夹,复制classes.dex文件

5.然后将其复制到新下载的工具所解压出来的dex2jar文件夹内

6.放到dex2jar.bat所在目录

-----------------------------------------------------------以上都准备好就可开始反编译了-----------------------------------------

三、开始反编译

1.点击左下角 开始菜单,进入CMD命令行(直接按 Windows键 + R 后输入cmd):

步骤和前面相同,这里就不啰嗦了,通过指令直接进入到dex2jar内:

2.输入命令dex2jar.bat    classes.dex,按回车Enter开始反编译

3.开始反编译

4.编译完成后,如下图:

5.这时候,dex2jar文件夹内会生成一个classes_dex2jar.jar文件,这就是我们费尽心思才弄出来的源码文件

--------------------------------------------------那么接下来就是查看源码了------------------------------------------------

查看反编译所得的源码

1.打开下载的另一个工具包jd-gui

2.运行JD-GUI(jd-gui.exe),这里查看源码的软件

3.依次点击左上角File -> Open File,在弹出的文件窗口找到并打开上面生成的jar包,即可看到源代码了:

4.如这里所示,这就是我们历尽千辛万苦得到的源码了!

------------------------------现在,尽情地学习所得到的代码了!!!----------------------

另外,在使用CMD反编译时,可能会遇到一些意料之外的问题(这里也稍加整理一下):

1.Input file  was not found or was not readable.

2.Destination directory (C:\Users\user\...) already exists. Use -f switch if you want to overwrite it.

3.Exception in thread "main" brut.androlib.AndrolibException: Could not decode ars c fil..........

解决方案:

1和2是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f <apkPath> -o <folderPath>,参数具体的意思可以直接打apktool回车(windows)查看帮助

3是因为apktool版本过低导致,请升级到最新版本,地址:https://bitbucket.org/iBotPeaches/apktool/downloads

如果觉得有帮助或者喜欢的话希望能点个赞和收藏,花了一晚上写这篇博客,希望能帮到进击路上奋斗的各位,如有不足还望指正,哎呀累死了,终于可以下班了 (~ ̄▽ ̄)~

共勉!

超详细!apk安装包快速反编译,多种反编译及失败的解决方案(包含classes.dex的反编译,新增加快速反编译)相关推荐

  1. 反编译获取apk安装包源代码步骤

    准备工作 我们首先需要下载三样工具:apktool,jd-gui,dex2jar. 反编译获取体育软件源代码 需要用到三样工具:apktool,jd-gui,dex2jar,具体下载链接如下所示 ap ...

  2. 更改apk安装包对android系统等级要求

    此篇文章解决的为问题: █问题1.系统等级与apk等级不匹配. █问题2.更改api等级后的签名问题. ================================= 1.工具准备: 解压缩too ...

  3. Sencha学习笔记2:打包您的第一个Sencha安卓应用apk安装包

    通过上一篇翻译的官方文章的介绍我们对sencha有了初步的印象,同时我们也通过该向导生成了第一个示例应用代码框架,那么下一步可能很多人都觉得应该根据该向导所提示的去看一下一个应用是如何建立起来的详细信 ...

  4. Android App 导出APK安装包以及制作App图标讲解及实战(图文解释 简单易懂)

    操作有问题请点赞关注收藏后评论区留言~~~ 一.导出APK安装包 之前在运行App的时候,都是先由数据线连接手机和电脑,再通过Android Studio的Run菜单把App安装到手机上,这种方式只能 ...

  5. 谷歌安卓以AAB替换APK安装包

    6月2日正式发布的华为鸿蒙系统2.0完全兼容安卓应用,6月底微软又刚宣布Windows 11将会支持安装原生安卓应用. 近日传来另一个重大消息,谷歌周三宣布,谷歌应用商店Play Store的APP格 ...

  6. android apk自动安装包下载,apk安装包管理app下载-apk安装包文件管理 安卓版v13-PC6安卓网...

    apk安装包文件管理app是一款实用系统应用,apk安装包文件管理app是个小巧好用的手机内安装包管理工具.apk安装包文件管理app让你可快捷的管理手机里有意或无意下载的各种安装包. 软件介绍 ap ...

  7. Android APK 安装包

    最近本人了解了一些关于Android APK安装包的知识,在此写下一篇博客进行总结. APK总览 APK是AndroidPackage的缩写,即Android安装包(apk).APK文件其实是zip格 ...

  8. java 读取apk_readApk 读取apk安装包的各种信息,帮助java后台开发者,并提供方便 Develop 238万源代码下载- www.pudn.com...

    文件名称: readApk下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 13583 KB 上传时间: 2014-07-08 下载次数: 4 提 供 者: mei ...

  9. 前端解析ipa、apk安装包信息 —— app-info-parser

    安装包只需要经过一次传输,另一次则是可以忽略不计的请求 安装 npm install app-info-parser # or yarn yarn add app-info-parser 使用 NPM ...

最新文章

  1. php中添加访问器,php – 结合访问器和mutator逻辑,为模型添加自定义属性
  2. [XPath] XPath 与 lxml (三)XPath 坐标轴
  3. 2014年广州科目三道路驾驶技能考试/广汕路科目三路考系统操作和评判指南
  4. android studio n3710,英特尔奔腾N3710性能跑分和评测 | ZMMOO
  5. 防范网络*** 应用层防护是重点
  6. HTML5:去除IE10中输入框和密码框的X按钮和小眼睛
  7. Linux下安装MySQL数据库以及用C语言编程存取数据库
  8. BERT模型实战之多文本分类(附源码)
  9. BZOJ1075 : [SCOI2007]最优驾车drive
  10. MYSQL-常用函数
  11. 加州大学戴维斯分校 计算机科学,加州大学戴维斯分校计算机科学申请要求详细解读...
  12. oracle数据库查表函数,Oracle数据库的常用函数列表快速查1
  13. 这届年轻人追热点、爱国货 2021年购物车里藏着“青年情绪”
  14. 用MATLAB编写限幅滤波程序,双二阶滤波器之MATLAB设计及C语言实现
  15. 机器视觉表面缺陷检测综述
  16. python中seed的相关代码
  17. X Error of failed request: BadWindow (invalid Window parameter)
  18. armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价
  19. 一本修炼秘籍,带你打穿文件上传的21层妖塔(1)
  20. H3C Inode查看卸载密码的方法

热门文章

  1. 【RASA】Core模块
  2. python小工具之pdf转excel
  3. Python pdf转csv
  4. 非常棒的loading制作教程
  5. 计算机技术史上的名人,计算机历史上的名人.pdf
  6. latch: cache buffers chains latch: ges resource hash list
  7. 了解“新基建”、读罢IDC报告后,还请查收来自浪潮的硬核实力!
  8. 【零样本学习】Feature Generating Networks for Zero-Shot Learning
  9. [微信小程序]适配各个不同机型屏幕
  10. C语言——PTA 最大公约数和最小公倍数