由于这几天在写一个与android相关的分析报告,需要研究一下Google的某些应用程序的代码,但是这一部分代码不是开源的,所以就在网上学习了一下android代码的反编译技术,在此做一个记录,以免以后可能会用到:本人系统是在ubuntu11.04下,

在网上有一个开源的反编译工具,在下面的地址可以下载到

apktool:https://code.google.com/p/android-apktool/downloads/list

下载之后就可以选择安装到自己的pc上,如果需要经常用那你可以直接把他添加到自己系统的/usr/bin目录下,在这里我是安装在了我的/usr/bin目录,反编译的命令为:

apktool  d -f   fgma10.apk test

apktool的具体命令可以使用 apktool -help来查看

上面可以查看一些资源文件,如布局文件,AndroidManifest.xml文件等等

如果想看到他的源文件,首先要得到他的.dex文件,首先在linux下看看apk的文件属性

jjx@jjx:/tmp$ file fgma10.apk 
fgma10.apk: Zip archive data, at least v2.0 to extract

可以看出他是一个zip类型的文件,我们可以将他解压到本地

解压后就可以得到class.dex文件了,接下来我们就需要反编译该文件了,使用的工具可以在以下地址下载

dex2jar:https://code.google.com/p/dex2jar/downloads/list

调用dex2jar  classes.dex  会在当前目录下生成一个classes_dex2jar.jar的文件,这个实际上就是一个class文件的结合体,接下来我们需要用到另外一个工具jd-gui,下载地址为:

jd-gui:http://java.decompiler.free.fr/?q=jdgui

这个程序是一个图形化的界面,接下来大家就知道怎么操作了。

 

 

转载于:https://www.cnblogs.com/jjxxjnzy/archive/2013/03/30/2990942.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐