动手搭建linux下的APK反编译环境

动手搭建linux下的APK反编译环境

        网上绝大部分APK反编译文章讲的都是windows环境下的,但是本人既然在linux下做android开发了,总不能反编译一个APK,需要打开windows虚拟机,然后再按部就班吧。
于是自己通过网上搜索一些资料,打造了一个linux下的APK反编译环境。本人对于java不熟,所述不详或不对的地方还望指出。
  必备工具:
  1.apktool apk打包工具
  下载地址:http://code.google.com/p/android-apktool/
  安装:直接解压即可,是一个apktool.jar文件,通过

$java -jar apktool.jar 

  来运行,依赖于java运行环境
  2.dex2jar dex转化jar工具
  下载地址:http://code.google.com/p/dex2jar/
  安装:直接解压即可,是一个文件夹,里面包含了很多文件,通过

$./dex2jar.sh 

  来运行
  3.unzip zip解压缩工具,用于解压jar包(jar包是zip压缩的,所以可以用其它工具代替)
  下载地址:ubuntu $sudo apt-get install unzip
  安装:不解释了,通过  

$upzip [src_path] -d [dst_path]

  来运行

  4.jad .class文件反编译工具
  下载地址:http://www.varaneckas.com/jad
  安装:直接解压即可,是一个可执行文件,通过  

./jar

  来运行,我这里运行的时候遇到一个问题,和大家分享一下。运行时会报一个libstdc++-libc6.2-2.so.3 not found 的问题。对于该问题到http://archive.debian.net/etch/i386/libstdc++2.10-glibc2.2/download下载一个,并通过
  $dpkg -i libstdc++2.10-glibc2.2_2.95.4-27_i386.deb
  来安装即可

  -----------------------------------------------------------------------------
  接下来,工具准备完毕了,最好设定一下环境变量,我们就可以反编译apk了
  一、抽取apk资源,通过

$java -jar apktool.jar d [source.apk]

  来实现
  二、反编译源码
  (1)解压apk

$unzip [source.apk] -d [step_1]

  step_1指的是你所需要解压到的目录
  (2)进入step_1 目录,找到classes.dex文件,将dex文件转化成jar文件

$dex2jar.sh classes.dex

  (3)获得一个classes_dex2jar.jar文件,我们现在要再度解压这个文件

$upzip classes_dex2jar.jar -d [step_3]

  step_3指的是你解压到的目录
  (4)我们获得一个step_3目录,我们接下来要反编译该目录下所有.class文件  

$jad -o -r -sjava -dsrc step_3/**/*.class

  (5)我们再度获得一个src目录,该目录下就是反编译好的源码文件了。

posted @ 2012-03-28 12:27  五分  阅读(2275)  评论(0编辑  收藏  举报