啊菜 写本篇文章的目的是为了总结,而反编译APK的主要目的在于学习,通过反编译,我们可以养眼下一些优秀的Android应用程序代码。 啊菜 在这儿热情提示下:还是尽量不要利用反编译进行汉化或修改,毕竟程序员写个程序不容易啊,多少个奋斗的星夜里才出炉这么个优秀的产品! 网络上有很多反编译android APK的方法,先从反编译的原理讲起: 目前Google Android平台选择Java Dalvik VM的方式编译打包APK的方式是很容易激活成功教程和被修改。 首先APK文件的本质就是一个MIME为ZIP的压缩包,我们修改ZIP或RAR后缀名方式就可以看到内部的文件结构,类似 Sun JavaMe的Jar压缩格式一样,不同的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进DEX文件中,作为托管代码让Android 虚拟机可以识别,同时我们也可以很轻松的进行反编译。所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些跟踪工具。 开始 反编译之旅 一、用winrar或zip软件打开apk文件 ,得到文档结构图 二、将classes.dex文件解压出来,然后使用工具反编译成.jar文件,再进一步反编译出java文件 比如: 2.用WinRAR软件解压出jar文件中的class文件,然后用jad或DJ Java Decompiler反编译工具将.class文件反编译成.java文件 3.不解压出jar中的class文件,直接用JD GUI工具打开jar文件 4.步骤2和3选择其中一个即可,建议用步骤2,步骤3可能出现乱码 三、上面操作只能得到class文件,下面利用Google提供的apktool得到xml文件 1. 下载apktool,可以去Google官方下载apktool-1.3.2.tar.bz2和apktool-install-windows-2.2_r01-3.zip.解压apktool-install-windows.zip到任意文件夹(例如D盘根目录),解压apktool.jar到apktool-install-windows同目录下。 2. Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看 apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC 3. 在解压后的文件夹中可以得到apk的xml配置文件 四、将“二”中得到的class文件和“三”中得到的xml文件组合成一个android工程,即可得到完整的apk源码。 专业名词解释:
原文地址:http://hi.baidu.com/spiderjun/blog/item/ae795a5994f0233d2934f02d.html |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35603.html