由于这几天在写一个与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
这个程序是一个图形化的界面,接下来大家就知道怎么操作了。
所有评论(0)