APK反编译

反编译apk 1,反编译是什么呢高级语言程序经过编译,变成可执行文件,反编译就是逆过程。但是通常不可能把可执行文件变成高级语言源代码,只能转换成为汇编程序。反编译是一个发杂的过程,所以越是高级的语言,就越难于反编译:2,反编译的目的通过对他人软件的目标程序进行逆向分析,推导出他人软件产品所使用的思路,原理,结构,算法,处理过程,运行方法等涉及要素,可作为参考。。。3,工具已经下载好的文件:连接自取    3.1... 阅读详情

原博客地址:https://blog.youkuaiyun.com/s13383754499/article/details/78914592

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等,apk反编译也算是Android开发中一个比较实用的技巧吧,当我们对别人开发好的应用感兴趣时,我们就可以通过这种技术手段将别人打包好的apk进行反编译,继而可以看到我们感兴趣的内容,(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)下面就来说说如何将一个apk反编译出来。

一、准备必要工具

  工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具

1.1、使用工具

  1. apktool (资源文件获取) 
  2. dex2jar(源码文件获取)
  3. jd-gui  (源码查看)
  4. 下载地址:https://download.youkuaiyun.com/download/javaee1234/10589816

1.2、工具介绍

  apktool  

         作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

  dex2jar

         作用:将apk反编译成java源码(classes.dex转化成jar文件)

  jd-gui

         作用:查看APK中classes.dex转化成出的jar文件,即源码文件

1.3工具下载

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

  

  下载好之后得到一个如下图所示的jar文件

  

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

  

  

  下载完成之后,得到一个如下图所示的压缩包

  

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

  

  下载完成之后,得到一个如下图所示的压缩包:

  

  到此,需要使用到的3个相关工具都下载好了,在这里说明一下jd-gui的下载,我从官方网站上点击下载时会经常出现如下图所示的问题

  

  但是多试几次又可以下载了,所以如果有遇到这个问题的朋友们不妨多试几次,或者从别的地方下载jd-gui,jd-gui算是做Java开发的一个必备工具了,用它来将class反编译成java源代码是非常方便的,网上搜索一下一般都可以下载到,只不过版本不一定是最新的。

二、Apk反编译流程

  为了方便进行反编译,我们将上述下载好的3个工具统一放到一个文件夹中,例如:

  

  然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹,如下图所示:

  

2.1、使用apktool反编译apk得到图片、XML配置、语言资源等文件

  进入CMD命令行,如下:

  

  切换到上述的3个工具的所在目录,如:E:\AndroidDevelopTool\Android反编译工具包

  

  接下来我们要做的就是运行apktool_2.0.1.jar这个jar文件来将apk文件进行反编译,在java中,运行可执行jar包的命令是:

java -jar jar包名.jar

  使用如下的命令运行apktool_2.0.1.jar反编译MMTS-release-1.0.2.apk

java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反编译工具包\测试apk\MMTS-release-1.0.2.apk -o MMTS

  这个命令是启动apktool_2.0.1.jar将位于【E:\AndroidDevelopTool\Android反编译工具包\测试apk\】目录下的"MMTS-release-1.0.2.apk"这个apk反编译,然后将反编译生成的文件存放到当前目录(apktool_2.0.1.jar所在的目录,也就是"E:\AndroidDevelopTool\Android反编译工具包"目录)下的一个【MMTS】文件夹中。这个文件夹的名字是可以随便取的,喜欢叫啥都行。

  执行反编译操作:

  

  反编译成功后,会在当前目录(E:\AndroidDevelopTool\Android反编译工具包)下生成一个MMTS文件夹,打开MMTS里面就有反编译后生成的文件,如下图所示:

  

  打开MMTS文件夹,就可以看到反编译后的生成的文件,如下图所示:

  

  生成的文件和文件夹当中,我们关心的是【res】文件夹中和AndroidManifest.xml文件,打开res文件夹,里面就有我们想要看到的东西了,如下图所示:

  

  

  

  

  想查看哪个xml文件就使用文本编辑器打开看看吧,反正全部都可以看到了。以上就是使用apktool这个工具将一个apk反编译得到图片、XML配置、语言资源等文件的过程。

2.2、使用dex2jar反编译apk得到Java源代码

  将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),如下图所示:

  

  将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,如下图所示:

  

  在命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:

  

  命令执行完成之后,在当前目录下就可以看到生成的Jar文件了,如下图所示:

  

  反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了

  

  使用jd-gui打开classes-dex2jar.jar就可以看到源代码了,如下图所示:

  

  JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

  

  以上步骤是我亲自实践过之后一步步整理出来的,对照着做应该不会有太大问题。

三、Apk反编译注意问题

3.1、apktool版本太旧导致反编译失败的问题

  之前用过了apktool这个工具的一些旧版本,发现总是反编译不成功,在执行反编译时会出现如下错误:

  Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file

  

  这个问题是因为apktool版本过低导致,而解决这个问题的办法就是使用最新版本的apktool就可以了,最新版本的下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

3.2、apktool执行反编译命令出现”Input file was not found or was not readable"的问题

  这个问题是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f <apkPath> -o <folderPath>

  好了,关于反编译apk的内容就这么多了。
  最后,给大家分享我下载好的那三个相关工具,下载地址:https://download.youkuaiyun.com/download/javaee1234/10589816

使用Apktool反编译Apk文件 apktool 阅读详情

相关推荐

Ubuntu反编译apk教程

[TOC] 今日需参考ROM厂商部分APK,故查阅走坑以做记录资源文件如参考图片、布局之类,可以直接将APK解压出来的目录结构如下:├── AndroidManifest.xml ├── META-INF │ ├── CERT.RSA │ ├── CERT.SF │ └── MANIFEST.MF ├── res │ ├── anim │ ├── animator │ ├─

vito的专栏 7992

Apk反编译

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编...

baidu_32015283的博客 658

【Apk反编译】如何反编译Apk得到Java源代码

Android Apk反编译得到Java源代码       大家做Android开发,看到别人应用里一些好的功能,是不是很想得到源码,借鉴一下?既然Android是用JAVA开发的,那么我们就能很容易的通过反编译的到应用的源代码。下面我简单介绍下应该怎么操作。 具体步骤: 1.首先将apk文件后缀改为RAR并解压。   2.解压rar文件,得到其中的classes.dex文件 ...

仰望星空 8119

apk反编译--快速入门安全性测试

在安全测试中,特别是测试app的同学,肯定考虑到反编译,反编译是什么?可能有些人还是不知道,反编译是将app的开发者,把app打包好的apk进行反编,其作用是反编出来能否看到源码,这就关乎安全性的问题咯,你想想啊,源码这么容易被人看到,机密不是泄露了,在这竞争激烈的社会,关乎生死存亡。 所以研发人员打包好的apk前要对代码进行混淆,混淆就是把代码关键内容或变量等进行重命名,所以很多apk反编译出

测试领域专家,多领域测试技术、管理、工具都略懂,略懂一二 4798

apk反编译及签名打包工具组

apk反编译及签名打包工具组5个文件,包含apk的反编译,java修改,xml修改,内置js修改,html修改,以及apk的重新签名打包。

反编译APK工具包 ApkTool2.3.1、jd-gui、smali2java等 懒人包

这个压缩包收集了APK反编译常用的4个工具,可以节省大家收集的时间,直接拿来用吧。用这套工具,一般的APK源码基本都可以看。 所有APK反编译工具都是依托apktool的,所以他的版本很重要,1.X的版本基本都会反编译报错。 另外使用前要检查自己的JAVA环境。要求1.7或更高,请安装Java 7+ 对于经过混淆的APK,反编译后的源码是丢失变量等信息,会有一些资源文件已经成了一些十六进制的代码呈现在我们眼前,这就蛋疼了。但大家可以在以下文件找到这些十六进制数对应的资源名称。 对应资源描述文件:反编译生成目录\res\values\public.xml apktool 2.3.1 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 smali2java 以上工具的图形化合集.界面上给他APK文件,直接查看Java源码。

【总结】Apk反编译全解

实践总结,解决问题,乐在分享!古月大仙荣誉出品,欢迎关注、加粉、点赞、评论、交流! 引言: 接触APK脱壳、反编译、修复这方面技术有几天了,感觉里面的水也挺深的。尤其在大家无助之余,求助于网上的付费服务,骗子真的挺多,大家还是小心为上。如果你是个技术初学者,不会我们可以学,自己学到的知识永远是自己的!一定要有一技之长,才能立足于高手如云的技术界!针对jadx的使用,我也参考了不少...

古月大仙的博客 6465

APK一键反编译工具

APK一键反编译工具,只需一步就可以把安卓程序反编译出来,内附使用说明

安卓apk反编译

学习使人快乐,一些让你赏心悦目得app却没有开源代码,你该怎么去学习他呢?反编译似乎是一个不错得选择。当你有一套标准得反编译工具帮助你来反编译apk这样会使你的工作轻松很多,直接上步骤: 1,下载反编译工具,下载连接:https://download.youkuaiyun.com/download/qq_35539512/11268885 2,解压得到得压缩包如图:工具介绍:dex2jar主要是将dex文...

qq_35539512的博客 8523

lua 懒人精灵懒人精灵懒人精灵懒人精灵

懒人精灵懒人精灵懒人精灵懒人精灵懒人精灵懒人精灵

按键精灵 简单实现源码,可供参考

按键精灵 简单实现源码

apk反编译修改源代码_单击即可将APK反编译为源代码

apk反编译修改源代码In this tutorial I will guide you how to decompile apk to source code in just one click. 在本教程中,我将指导您如何一键将apk反编译为源代码。 APK file is compressed form of java classes, XML and several other fil...

culing2941的博客 4719

懒人精灵源码懒人精灵源码懒人精灵源码懒人精灵源码

懒人精灵源码懒人精灵源码懒人精灵源码懒人精灵源码

apk 反编译

在实际开发中我们需要的一些图片资源,或者UI想用别人APP的,我们可以通过反编译来获取,因为一般代码是有加密的所以是获取不到的! 首先是反编译用到的工具 apktool — 下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads dex2jar — 下载地址:http://sourceforge.net/projects/dex2jar/files/ jd-gui — 下载地址:http://jd.benow.ca/ Apktool 这个工具

qinchun_long的博客 9542

一分钟学会MATLAB-数据清洗(含完整代码)

数据清洗是数据分析过程中的一个重要步骤,目的是提高数据的质量,以便进行更有效的分析。% 删除超出阈值的行。% 用线性插值填充缺失值。% 删除包含缺失值的行。% 找到缺失值的位置。% 可视化数据,识别异常值。缺失值是数据清洗中常见的问题。通过以上步骤,你可以有效地清洗数据,使其准备好进行后续的分析和建模。

2402_87132195的博客 3316

Python自然语言处理 NLTK 库用法入门教程【经典】

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?学习 NLP 能带来什么好处? ...

python函数基础教程 1万+

apk反编译教程

apk反编译教程 工具介绍 apktool 最新版 jar 包 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2 jar 的zip包 作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui 工具 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 工具下载地址 apktool_2.3.4 jar 包 官网下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/ de

qq_16570607的博客 8035

LCD驱动芯片——BL55072A驱动程序

初始化子程序: START 0x7C; I2C子地址 0xEA;ICSET,软件复位芯片 0xC0;MODSET,关显示 0xF0;BLKCTL,关闪烁 0xA3;DISCTL,80Hz Line inversion,High Power mode 0xE8;ICSET,清复位bit1 STOP 显示刷新子程序: START 0x7C;I2C子地址 0xF0;BLKCTL,关闪烁 0xA3;DISCTL,80Hz Line inversion,High Power mode 0xE8或0xEC;ICSE

love421的博客 3175

apk反编译

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编...

bqxdrs012的博客 8391

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6618

用 MVC 框架把 ABAP 报表写成可扩展的应用(2)

本文介绍了一个基于MVC架构的SAP报表模板,解决了传统ABAP报表开发中的三个核心痛点: 选择屏幕校验逻辑分散问题 - 通过统一的选择屏幕控制器集中管理校验逻辑 在线与后台输出不一致问题 - 共享同一数据模型,通过不同控制器实现多样化展示 屏幕流转管理混乱问题 - 主控制器统一管理所有屏幕流程和事件 该模板采用分层架构: Model层专注数据获取和业务规则 Controller层管理流程和交互 View层负责展示逻辑 特别适用于需要同时支持交互式ALV展示和后台批处理输出的报表场景,通过标准化的扩展点设计

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 78
上一篇: 自动生成IP模拟POST访问后端程序
下一篇: 微信小程序 encryptedData 的解密(JAVA)
javaee1234
博客等级 码龄10年 49粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值