关于Android APK反编译的探索

注意:本文所讲反编译仅限学习代码和研究,不得用来非法破解软件侵权。特此声明!

近几年学Android应用开发的越来越多了,既然Android也是用Java开发的应该能反编译从而得到源代码。经过一番查询加上测试真解决了这个问题。

首先将apk文件,用winrar解压缩软件打开,把其中的classes.dex取出来复制到软件dex2jar解压缩的目录里

一、反编译Apk得到源代码方法的步骤:

首先要下载两个工具软件:dex2jar和JD-GUI

前者是将apk中的classes.dex 转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:

dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

1.运行CMD,或者在DOS里执行:

dex2jar.batclasses.dex

这样就生成 classes.dex.dex2jar.jar

生成jar文件的后目录截图如下:

关于Android APK反编译的探索_第1张图片

2.这个文件用JD-GUI软件里运行jd-gui.exe就可以打开,看到源代码了!

关于Android APK反编译的探索_第2张图片

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

如果用来只是汉化软件,这对您将特别有用。

首先还是下载工具,这次用到的是apktool

下载地址:http://code.google.com/p/android-apktool/downloads/list

下载:apktool1.4.3.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)

关于Android APK反编译的探索_第3张图片

过程:

将下载的两个包解压到同一个文件夹下,应该有三个文件:aapt.exe,apktool.bat,apktool.jar

在命令行转到到apktool.bat所在文件夹,输入以下命令:apktool d E:\xx.apk E:\xx文件夹,如下图:

关于Android APK反编译的探索_第4张图片

命令行解释:apktool d [apk文件 ] [输出文件夹]

AndroidManifest.xml等等都在这个文件夹中,打开看就可以了。

这个工具还可以打包。当您把文件更改以后再组装成APK时候用用到了。

命令行解释:apktool b [apk文件 ] [输出文件夹]

输出的文件夹一般为C盘里能找到那个.APK文件。

既然这些破解都这么容易,那么应用开发的程序员怎么保护自己呢?Google似乎也发现了这个问题,从SDK2.3开始在android-sdk-windows/tools/下面多了一个proguard文件夹,proguard是一个java代码混淆的工具,通过proguard,反编译经过代码混淆的apk得到的代码别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护的作用。


更多相关文章

  1. 什么是APK文件
  2. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态
  3. Android中数据存储——文件存储数据
  4. 深入探究Android的WebView下载网络文件的盗链问题

随机推荐

  1. 深入理解计算机系统(1.1)------Hello World
  2. jedis五种数据类型的方法解释
  3. 浅谈 Integer 类
  4. Pinpoint-技术专区-全流程学习
  5. HTTP报文头Accept和Content-Type总结
  6. Tomcat控制台日志输出到本地文件
  7. 深入理解计算机系统(4.1)------Y86指令集体
  8. [码]值得收藏的好东西
  9. SkyWalking结合Logback获取全局唯一标识
  10. [转载] 王垠: 如何掌握所有的程序语言