1先下载dex2jar 和jd-gui,和paktool推荐上官网下载
放出链接:http://sourceforge.net/projects/dex2jar/
http://jd.benow.ca/
尝试了反编译安卓apk,反编译出来的java源码的变量等都是 abcdef等字母,很难理解。看了一天之后,虽然还没完成自己想分析的东西,不过还是先记下来吧。
使用起来很简单,百度就有。我的简单步奏是先解压apk获取里面的.dex文件,使用dex2jar获取jar包,利用jd-gui导出成java文件,之后使用sublime来查看。
之后使用apktool反编译获取xml的源文件,注意刚开始只能编译出java文件。
因为使用了sublime的字符串查找功能,十分好用。
反编译出来的资源文件里面找到public.xml,这个记录的就是资源id。
public.xml----->
例如,要分析apk里面的一个功能,可以从这些id和资源文件作为突破口,可以先从别人的软件界面里确定某个特有的imageview的图片,或者试着寻找这个布局,当找到了之后。
例如我需要分析的一个功能在界面a里面,我找到了a_layout.xml,在布局里面有一个id是btn_function的按钮,之后再public.xml里面寻找这个id当前的int值,找到之后就可以使用sublime打开java源文件那个文件夹按ctrl shift f进行去全局搜索,一般都能找到这个按钮在哪个java文件里面出现过。初步定为到此结束。因为java源代码有可能都不是原来的变量名,最好就是从资源id入手,慢慢理清思路
下面是我理顺源代码中逻辑的过程
-========》》》》》
有两点建议:1类中原本定义的常量都用了对应数字来代替,2可能出现引用static常量时,显示成这样的情况 :a.a