反编译classes.dex

反编译classes.dex

转载:https://blog.csdn.net/Nobody_else_/article/details/

如有侵权请及时联系删除

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

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

一、工具下载

工欲善其事,必先利其器,得先下载好以下三个工具:

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

 

下载地址:

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

1.2保存,开始下载

反编译classes.dex反编译classes.dex

 

 

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

 

反编译classes.dex

 

 

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

反编译classes.dex

 

 

 

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

 

2.1下载最新版的

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

 

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

 

 

3.1找到JD-GUI一栏

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

 

 

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

链接:https://bianchenghao.cn/s/10c3ljZs1W75EUAknfcXrsQ 
提取码:js9q 

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

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

 

 

二、Apk反编译流程

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

下面是我放的位置

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

2.1开始反编译

 

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

反编译classes.dex

 

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

接下来就是反编译的重要步骤了,运行apktool_2.3.4.jar工具,在电脑安装了java并且配置好jdk环境后(开发人员一般具备,非开发人员可以百度自行操作),运行可执行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执行,等待完成(如图为完成状态)

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

 

 

这样是否就已经完事了呢?然而并没有。。。

 

这篇博客的标题清楚地说到了2种方法,另一种方法呢?不用着急接下来继续介绍。第二种方法主要针对上面无法成功反编译的情况:

 

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

反编译classes.dex

注:<XXX>是文件的名称

 

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

 

 

classes.dex的反编译

 

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

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

链接:https://bianchenghao.cn/s/17uIKAssf_9kljzKyZOEQeQ 
提取码:fu7h 

 

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

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

 

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

反编译classes.dex

 

 

二、处理apk文件

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

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

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

反编译classes.dex

 

 

2.弹出确认弹框,是

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

反编译classes.dex

 

 

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

反编译classes.dex

 

 

6.放到dex2jar.bat所在目录

反编译classes.dex

 

 

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

 

 

三、开始反编译

 

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

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

3.开始反编译

反编译classes.dex

 

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

反编译classes.dex

 

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

反编译classes.dex

 

 

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

 

 

四、查看反编译所得的源码

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

 

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

反编译classes.dex

 

反编译classes.dex

 

 

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

反编译classes.dex

 

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

 

 

 

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

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

2.Destination directory (C:Users퇕…) 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

 

 

 

今天的文章
反编译classes.dex分享到此就结束了,感谢您的阅读。

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

(0)
编程小号编程小号
上一篇 2024-09-01 22:11
下一篇 2024-09-01

相关推荐