博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android APK程序反编译步骤详细图解
阅读量:6000 次
发布时间:2019-06-20

本文共 1523 字,大约阅读时间需要 5 分钟。

这段时间在学Android应用开发,在想既然是用Java开发的应该非常好反编译从而得到源码吧,google了一下,确实非常easy,下面是我的实践过程。

在此郑重声明,贴出来的目的不是为了去破解人家的软件,全然是一种学习的态度,只是好像通过这样的方式也能够去汉化一些外国软件。

 

 

本文Android反编译教程,測试环境:

Win7 Ultimate x64

Ubuntu 12.04 x86_x64

反编译工具包  (2012-10-10更新)

 

一、Apk反编译得到Java源码

下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9目录,内含apk反编译成java源码工具,以及源码查看工具。

apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件

源码查看工具jdgui,是一个反编译工具,能够直接查看反编译后的jar包源码

 

dex2jar 和 jdgui 最新版本号下载,分别见google code:

(google code)

(google code),最新版本号请见 

 

详细步骤:

首先将apk文件后缀改为zip并解压,得到当中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex拷贝到dex2jar.bat所在目录dex2jar-0.0.9.9目录。

在命令行下定位到dex2jar.bat所在目录,执行

dex2jar.bat    classes.dex

生成

classes_dex2jar.jar

 

然后,进入jdgui目录双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源码了,例如以下图:

HelloAndroid源码在反编译前后的对比方下:

 

 

 

二、apk反编译生成程序的源码和图片、XML配置、语言资源等文件

假设是汉化软件,这将特别实用

首先还是要下载上述反编译工具包,当中最新的apktool,请到google code下载

(google code)

 

详细步骤:

下载上述反编译工具包,打开apk2java目录下的apktool1.4.1目录,内含三个文件:aapt.exe,apktool.bat,apktool.jar 

注:里面的apktool_bk.jar是备份的老版本号,最好用最新的apktool.jar

 

在命令行下定位到apktool.bat目录,输入下面命令:apktool.bat  d  -f   abc123.apk   abc123,例如以下图:

 

上图中,apktool.bat 命令行解释:apktool.bat   d  -f    [apk文件 ]   [输出目录]

 

反编译的文件例如以下(AndroidManifest.xml为例):

 

将反编译完的文件又一次打包成apk,非常easy,输入apktool.bat   b    abc123(你编译出来目录)即可,命令例如以下:

 

打包apk后的文件在目录C:\HelloAndroid下,生成了两个目录:

build

dist

当中,打包生成的HelloAndroid.apk,在上面的dist目录下,Ok

 

 

三、 图形化反编译apk

上述步骤一、二讲述了命令行反编译apk,如今提供一种图形化反编译工具:Androidfby

首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就能够浏览打开要反编译的apk

 

 

本文反编译工具包整理历史版本号:

  (2012-10-10)

 (2012-08-21)

 (2011-08-28)

 

 

本博客反编译方法,仅供參考学习使用,禁止用于非法和商业等用途,谢谢!

转载地址:http://aibmx.baihongyu.com/

你可能感兴趣的文章
wget 用法
查看>>
Git配置以及命令总结
查看>>
cacti基础配置,附带软件包
查看>>
Centos 7 Saltstack自动化部署weblogic 12c
查看>>
自学sql之路,SQL 是用于访问和处理数据库的标准的计算机语言!
查看>>
Nginx基本配置
查看>>
[Windows Azure] How to use the Windows Azure Blob Storage Service in .NET
查看>>
LNAMP第二版(nginx 1.2.0+apache 2.4.2+php 5.4)
查看>>
MongoDB repl set权限认证配置步骤
查看>>
java学习笔记(1)
查看>>
禁止Mysql默认端口访问Internet - MySQL - IT技术网
查看>>
基于用户投票的排名算法(二):Reddit
查看>>
下午最后的草坪
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
用PHP读取和编写XML DOM4
查看>>
github相关
查看>>
1.部分(苹果)移动端的cookie不支持中文字符,2.从json字符串变为json对象时,只支持对象数组...
查看>>
vim配置及快捷键
查看>>
2018省赛赛第一次训练题解和ac代码
查看>>
UWP Composition API - 锁定列的FlexGrid
查看>>