Android APK反编译查看源码及资源文件

转载 2013年12月03日 11:20:46

本文主要介绍如何反编译Android应用程序查看源代码、资源文件和xml文件以及修改后重新打包成APK。鼓励大家反编译去学习他人的设计而不是将应用换壳后混乱市场。也可以直接使用网友整理的 anti-droid.

 

Android APK实际就是个Zip文件,可以解压缩后反编译查看源代码和资源文件。以下以微信为例:

我们可以右击APK文件,”打开方式”选择Winrar压缩文件管理器,截图如下:

rar查看
是不是跟程序的目录结构很像,源码已经被压缩在了classes.dex文件中。这里我们可以直接查看res下面的图片文件,但对于源代码无法查看,AndroidManifest.xml清单等xml文件打开也是乱码。

 

需要用到的工具包下载地址(截止2013-03-14最新),包括dex2jar、jd-gui、apktool。也可以在下面需要时分别下载最新。
1、 查看源码
(1) 修改待反编译文件后缀.apk为.zip后用winrar解压,记录classes.dex的路径。
(2)使用工具包中的android-reverse-trinea\dex2jar-0.0.9.13或下载最新的dex2jar后解压,在命令行运行

如下:

dex2jar
结果会在classes.dex所在目录下生成classes_dex2jar.jar,用jd-gui.exe(使用工具包中jd-gui或下载最新)打开此文件,如下:
source code
从中我们可以大致了解代码结构,虽然源码经过proguard混淆后可读性很差,但还是可以通过关键字(不可混淆的类名等)查找获取到一定的信息。不过jd-gui无法通过源码查找,只支持查找类型、构造函数、常量、属性、方法。

 

2、查看资源文件和xml文件
(1)使用工具包中的android-reverse-trinea\apktool-1.5.2-windows或下载最新的apktool(需同时下载apktool及对应平台的依赖包,解压后将平台依赖包中的apktool.jar复制到apktool目录下),在命令行运行

其中d表示解包,xxx.apk为待反编译apk路径,xxx为目标文件夹名,(apktool不支持中文目录),如下:
apktool
结果会再apktool.bat所在目录下生成weixin文件夹,现在就可以正确的查看xml资源(包括res下的所有资源,如点9图片、drawable、layout、value、menu等等)了,比如AndroidManifest.xml
AndroidManifest

 

3、修改后重新打包成APK

依然使用步骤2中的apktool,命令如下

其中b表示build,xxx表示步骤2中解包出来的文件夹,我们可以对某一文件进行修改,重新打包rebuild
打包完成后会在xxx目录下生成build和dist两个文件夹,dist存放重新生成的APK,build存放该APK的具体组成信息。
这里我们可以简单的替换资源也可以通过修改smali完成代码的修改,别做坏事哦^_*。

相关文章推荐

Android APK反编译查看源码及资源文件

转载出处:http://www.trinea.cn/android/android-apk-decompile-to-view-source-code-and-resource-files/ ...

Android APK反编译查看源码及资源文件

本文主要介绍如何反编译Android应用程序查看源代码、资源文件和xml文件以及修改后重新打包成APK。鼓励大家反编译去学习他人的设计而不是将应用换壳后混乱市场。也可以直接使用网友整理的 anti-d...

android apk反编译(获取源码,资源文件等)

android apk反编译,是让你可以去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局是怎么实现的一、当然我们也需要借助工具:apktool (资源文件获取,可以提取出图片文件和布局文件进行...

反编译APK 得到JAVA代码和资源文件源码

一.反编译Apk得到Java源代码  转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495...

Android APK反编译得到Java源代码和资源文件

原文地址:APK反编译得到Java源代码和资源文件" href="http://blog.sina.com.cn/s/blog_616f6ed80100xep3.html" style="color:...

Android如何反编译APK与资源文件

Android 反编译一、需要准备三个软件包 1. apktool 用于反编译解析资源文件 2. dex2jar 用于反编译出JAVA代码 3. jd-gui 用于...

Android APK反编译得到Java源代码和资源文件

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完...
  • kof820
  • kof820
  • 2011年09月08日 14:08
  • 850

Android APK反编译得到Java源代码和资源文件

发现很多人都在关心apk的反编译,上传一个可视化的工具吧,原理和下面说的差不多,就是封装了一下。点我下载Android反编译工具 另外,作为应用开发者,肯定不希望自己的代码被反编译的,另外写了篇...

Android APK反编译得到Java源代码和资源文件

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android APK反编译查看源码及资源文件
举报原因:
原因补充:

(最多只允许输入30个字)