已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android 反编译apk 到java源码的方法 分类: Android 2010-12-31 15:46 1931人阅读 评论(1) 收藏 举报 Apk文件破解可见源码 获取apk的 资源 图片 直接用 WinRAR打开,res/drawable直接拖拽出来即可。 获取xml文件信息 虽然能用WinRAR看到里面的xml文件,但是xml是经过优化的,无法直接查看,需要使用apktool 工具 , 下载 地址: /p/android-apktool/ 。 下载 apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,DOS在cmd下进入apktool所在路径,然后输入apktool d XXX1 XXX2,XXX1指的是你要反编译的apk文件,XXX2指的是反编译后文件存放的路径, 如:apktool d C:/taobao.apk C:/taobao 3 反 编译 dex获取 Java 源代码 Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个 开源 工具:dex2jar,下载地址: /p/dex2jar/ 。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过 jad工具把jar文件反编译成Java源文件,jd-gui下载地址: http:/java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip 。 详细步骤:解压apk文件,直接拖拽(rar解压软件),找到classes.dex文件 在cmd下进入dex2jar.bat所在路径, 然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称(classes上面解压得到), 如:dex2jar.bat D:/classes.dex; 这样会生成一个 classes.dex.dex2jar.jar文件,然后用jd-gui工具将jar文件反编译成java文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了。很强大吧。 from:/eblson/blog/item/312de07b5e594dff2f73b353.html -一、获得APK源代码: 工具下载 :需用到 dex2ja r 和 JD-GUI 这 2 个工具 dex2jar 下载地址 : /files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI 下载地址: windows 版 JD-GUI : /files/jdgui.zip Linux 版 JD-GUI : /files/jd-gui-0.3.2.linux.i686.tar.gz 步骤: 1. 把 apk 文件改名为 .zip ,然后解压缩 , 得到其中的 classes.dex 文件,它就是 java 文件编译后再通过 dx 工具打包成的 , 所以现在我们就用上述提到的 2 个工具来逆方向导出 java 源文件 2. 把 classes.dex 拷贝到 dex2jar.bat 所在目录。 在命令行模式下定位到 dex2jar.bat 所在目录,运行 dex2jar.batclasses.dex ,生成 classes.dex.dex2jar.jar 3. 运行 JD-GUI 工具(它是绿色无须安装的) 打开上面的 jar 文件,即可看到源代码 - 二 . 反编译 apk 生成程序的源代码和图片、 XML 配置、语言资源等文件。 工具下载: 在 /p/android-apktool/ 下 载获得, apktool-1.0.0.tar.bz2 和 apktool-install-windows-2.1_r01-1.zip 两个包 。 1. 解压缩下载的两个文件包, apktool-install-windows-2.1_r01-1.zip 解压缩后得到的包里有 aapt.exe 和 apktool.bat. (注意要把 apktool-1.0.0.tar.bz2 解压后的一个 .jar 文件 copy 进来) 2. 打开命令窗口 (开始 运行,输入 cmd ,回车。)进入到 apktool.bat 的文件夹里。 输入: apktool dC:/*.apkC:/* 文件夹 (命令行解释: apktool d 要反编译的文件 输出文件夹) 特别注意:你要反编译的文件一定要放在 C 盘的根目录里, 3. 打开 C:/* 文件夹 就可以得到我们学院的各种资源了。 from:/forum.php?mod=viewthread&tid=118 -本文主要介绍如何逆向一个Android的APK应用程序,本文提供的方法仅供研究学习之用。本文需要用到的工具有jdk 这个用于搭建java运行环境AXMLPrinter2.jar 这个用于逆向.xml文件baksmali.jar 这个用于逆向classex.dex文件由于 Android 的 .apk 文件实际上就是一个 zip 文件 可以直接用 winrar 打开 如下图所示: 用rar打开之后 我们可以看到该文件实际上是一个zip包 里面包含了META-INF文件夹,这个文件夹是用于保存签名文件,确保包的完整性的res文件夹下就是apk所要用的资源文件,都是原封不动地保存,我们可以直接提取出来,做汉化时就可以直接阅读string文件然后进行修改AndroidManifest.xml文件则是编译过后的一个配置文件,用于声明程序中所包含的activity,service以及程序所具有的能力,也就是权限。resources.arsc则是编译过后的一个资源说明文件,而我们要关注的主要是classes.dex 。我们编写的Android程序,在源程序里的所有.java的文件,最终都编译到这样1个.dex文件当中,在Android手机上的dalvik虚拟机上执行。首先,我们介绍如何逆向一个.xml文件由于apk包里的xml文件我们直接用记事本打开还是有一些乱码所以需要我们还原才能更好的看出这里需要用到AXMLPrinter2.jar 工具具体的则是打开命令行 我们以AndroidManifest.xml为例,输入如下命令java -jar AXMLPrinter2.jar AndroidManifest.xml AndroidManifest.txt有兴趣的也可以写成一个.bat的脚本,方便执行我们可以看看 执行的结果执行前的AndroidManifest.xml文件执行之后 我们可以再看看view plain copy to clipboard print ? 1. 2. 8. 12. 16. 18. 21. 22. 25. 26. 27. 28. 31. 32. 36. 37. 38. 41. 42. 45. 46. 49. 50. 53. 54. 57. 58. 61. 62. 65. 66. view plaincopy to clipboardprint?1. 3. 9. 13. 17. 19. 22. 23. 26. 27. 28. 29. 32. 33. 37. 38. 39. 42. 43. 46. 47. 50. 51. 54. 55. 58. 59. 62. 63. 66. 67. 基本能还原的跟源程序大致相同这里我是拿的eoe出的一个墙纸程序为例接下来,大家肯定更加关心classes.dex的逆向这个其实跟之前那个也很相似采用baksmali.jar这个工具,国外一个对Android研究的很深入的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论