android 的反编译与防反编译

1 apk反编译

  有时候,写不出来一个好的应用,或者没有思路,那么可以借鉴其他的apk,那么就有了反编译。

  A 得到Java源代码

  工具下载:需用到dex2jar和JD-GUI这2个工具

dex2jar下载地址:

       http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
  windows版JD-GUI:

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

       http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz

步骤:

1.首先找到Android软件安装包中的classes.dex
       把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

 

2.把classes.dex拷贝到dex2jar.bat所在目录。
       在命令行模式下定位到dex2jar.bat所在目录,运行

       dex2jar.bat classes.dex  ,生成classes.dex.dex2jar.jar

 

3.运行JD-GUI工具(它是绿色无须安装的)
 打开上面的jar文件,即可看到源代码

  B 生成程序的源代码和图片、XML配置、语言资源等文件。

   工具下载:

http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

步骤:

1.解压缩下载的两个文件包,apktool-install-windows-2.1_r01-1.zip解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解压后的一个.jar 文件copy进来)

2.打开命令窗口 (开始 > 运行,输入cmd,回车。)进入到apktool.bat的文件夹里。

          输入:

                    apktool d C:\***.apk  C:\***文件夹

(命令行解释:apktool d 要反编译的文件 输出文件夹)

特别注意:你要反编译的文件一定要放在C盘的根目录里,

3.打开 C:\***文件夹 就可以得到我们学院的各种资源了。

 

三.将反编译完的文件重新打包成apk

 很简单,只要输入:

     apktood b c:***文件夹(你编译出来文件夹)

 

2 防止反编译

   有时候,写的应用不想被别人那么容易破解,那么就只能对它进行包装了。

   在android-sdk-windows/tools/一个proguard文件夹,proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。
   让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了,完整的default.properties文件应该如下:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-9
proguard.config=proguard.cfg
  综合:经过防止反编译的加工,反编译后的文件只是部分能用的,有些很难看懂了。呵呵

 转载地址:http://www.cnblogs.com/playing/archive/2010/08/11/1797696.html 谢谢原作者

你可能感兴趣的:(android)