Android反编译apk(一)

    为什么反编译:

    做为个人开发,有时候看到精美的UI效果,好玩的功能,是不是有想可以参考学习的冲动。反编译android的apk,就是从apk中把资源(如图片,音乐,布局文件等等),源代码。

    推荐阅读:

    对于反编译apk,请先阅读文章<<反编译Android应用>>,<<Android APK反编译就这么简单 详解(附图)>>,好好看,看完自己下载几个apk试试,应该就对反编译apk心里有个底了。

   我的笔记:

(1).相关软件:

dex2jar------将apk反编译成java源码(qq.apk转化成qq_dex2jar.jar文件)

jd-gui--------是一个独立的图形工具,用于显示*.class文件的Java源代码

apktool------资源文件获取,可以提取出图片,音乐和布局文件进行使用查看,反编译后还可以重新编译回去

(2)软件使用简单说明:

     以qq.apk为例,我们要查看apk源码:

      先使用dex2jar将qq.apk转化成qq_dex2jar.jar文件,然后再用jd-gui查看源码。相关cmd命令:

1.dex2jar-------qq_dex2jar.jar文件
cd /d E:\BaiduYunDownload\0002_反编译Android应用\相关软件\dex2jar-0.0.9.15\dex2jar-0.0.9.15
dex2jar qq.apk

2.jd-gui-0.3.6.windows.zip-----从jar查看源码

把qq_dex2jar.jar文件拖入jd-gui中,查看源码

   以qq.apk为例,我们要查看apk资源文件:

    方法一:如果,我们仅仅要简单的查看一下图片,音乐,我们可以直接把qq.apk重新命名为qq.rar,然后解压就可以得到资源,但是这个方法得到的资源xml文件是乱码,并且点9图片会变形。所以,我们一般会用apktool工具反编译apk,得到完整的资源。

   方法二:apktool直接提取apk资源,相关cmd命令:

cd /d E:\BaiduYunDownload\0002_反编译Android应用\相关软件
apktool d AndroidDemo.apk
apktool d -f AndroidDemo.apk
apktool d -m AndroidDemo.apk
apktool d -s AndroidDemo.apk
apktool d -f -m -s AndroidDemo.apk

    如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool b AndroidDemo.apk

3. 还有度娘

    前二个方法,可能要借助什么翻墙才能下载到的软件,还有一些命令,但是,我们不要忘了还有度娘噢,我们可以下载到别人整理后的软件,功能更强大,使用更方便。

技术分享


实践结果:

   最后,我用了3个apk(QQ_220.apk,Mms.apk,Contacts.apk)来测试此方法(dex2jar,jd-gui,apktool)的反编译情况,最后的结果是:3个apk都可以生成jar文件,并都能查看java源码,但是只有Mms.apk能反编译出资源文件,其它二个都不可以。

  这个事实,也告诉我们,反编辑apk,也可能是一个相当考验人品的事情。所以,我们能做的就是多采用几种方法,多使用几种软件,多尝试,说不定,奇迹就在下一刻。

参考资料:

1.反编译Android应用

http://blog.csdn.net/android_cai_niao/article/details/43151831

2.Android APK反编译就这么简单 详解(附图)

http://blog.csdn.net/vipzjyno1/article/details/21039349

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。