关于Android APK反编译

关于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.bat   classes.dex

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

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

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

 

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

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

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

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

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

 

过程:

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

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

 

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

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

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

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

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

123 

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


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页