android反编译

Android APK反编译教程

只愿长相守 提交于 2020-04-07 10:43:54
Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似Sun JavaMe的Jar压缩格式一样,不过比较去别的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。Google最然在Android Market上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。 一、dexdump方法 dexdump是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件dump到txt文件中: D:\Program Files\android-sdk-windows-1.6_r1\platforms\android-1.6\tools>dexdump.exe -d classes.dex > spk.dump.txt 得到的文件内容,描述了类的信息,但是不怎么好阅读 二、AXMLPrinter2.jar + baksmali.jar +

Android APK反编译详解(附图)

邮差的信 提交于 2020-04-03 05:49:35
android 反编译工具 jar 下载工具 java 64bit 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一、Apk 反编译 得到Java源代码 下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和 jdgui 最新版本下载,分别见google code: dex2jar (google code) jdgui (google code),最新版本请见 官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes

Android反编译教程

牧云@^-^@ 提交于 2020-04-03 05:49:06
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一、Apk 反编译 得到Java源代码 下载上述反编译工具包,打开 apk2java 目录下的 dex2jar-0.0.9.9 文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和 jdgui 最新版本下载,分别见google code: dex2jar (google code) jdgui (google code),最新版本请见 官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录 dex2jar-0.0.9

Android APK反编译详解(附图)

感情迁移 提交于 2020-04-03 05:48:36
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一、Apk 反编译 得到Java源代码 下载上述反编译工具包,打开 apk2java 目录下的 dex2jar-0.0.9.9 文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和 jdgui 最新版本下载,分别见google code: dex2jar (google code) jdgui (google code),最新版本请见 官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录 dex2jar-0.0.9

android反编译

孤街浪徒 提交于 2020-04-03 05:48:07
常用反编译方法: 1.先将.apk改为.zip或者.rar用winrar加压得到classes.dex文件 2.用dex2jar工具将.dex转为.jar,然后用jd-gui就可以打开.jar查看源文件。 command: dex2jar.bat classes.dex 代码混淆: 1.混淆后能编译,只是类名,函数名看着没那么清晰了。 2.根目录下project.properties中设置配置文件路径。 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt(前者是基本文件,后者是个性化文件) 3.release方式生成apk. 解压apk包,res目录下的xml怎么查看呢。用文本工具打开是乱码。 使用AXMLPrint2.jar对xml进行反编译,报错(java.lang.ArrayIndexOutOfBoundsException) 报错原因:AndroidManifest.xml中android:minSdkVersion不能大于7 build时将android:minSdkVersion改为7以下就可以使用AXMLPrint2.jar进行反编译。 command: java -jar AXMLPrint2.jar main.xml >main.txt

android软件防反编译与反编译

拟墨画扇 提交于 2020-03-24 07:51:05
3 月,跳不动了?>>> 如何防止 反编译 作为Android应用开发者, 不 得 不 面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就 反编译 出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹 proguard是一个java代码混淆的工具,通过proguard,别人即使 反编译 你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。 下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看 android-sdk-windows\tools\lib\ proguard.cfg 的内容: [html] view plain copy -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public

Android 反编译详解

天涯浪子 提交于 2020-03-17 02:20:44
在学习Android开发的过程中,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的详解步骤。 (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。) 测试环境: win 7 /XP 使用工具: 下载地址: 反编译工具 工具介绍: apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar 作用:将apk反编译成Java源码(classes.dex转化成jar文件) jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 反编译流程: 一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件 下载上述工具中的apktool,解压得到3个文件: aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下, 打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令: apktool d [-s] -f test.apk -o test (命令中test.apk指的是要反编译的APK文件全名

ubuntu下使用反编译apk,工具dex2jar和jd-gui

我与影子孤独终老i 提交于 2020-03-14 06:53:04
ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 下载地址(建议下载最新版本,防止出现bug): http://code.google.com/p/dex2jar/downloads/list 跟windows下一个版本,既能用在windows下,又能在linux下运行,只是指令上的差距 到dex2jar目录下,xiao@xiao-System-Product-Name:~/下载/dex2jar-0.0.9.7$ 输入windows下用的命令:dex2jar.bat classes.dex报错。dex2jar.bat:找不到命令,这就是不同之处了 ubuntu下使用命令:xiao@xiao-System-Product-Name:~/下载/dex2jar-0.0.9.7$ sh dex2jar.sh classes.dex 输出:dex2jar version: translator-0.0.9.7 dex2jar classes.dex -> classes_dex2jar.jar Done. ok,解决了!!classes_dex2jar.jar就是我们需要查看的。 3.然后是使用jd-gui查看 下载地址(下载linux版本)

Android apk反编译 记录

霸气de小男生 提交于 2020-03-04 03:38:57
反编译中使用到的工具: apktool.jar & apktool.bat :用于反编译apk中的资源文件,或者将反编译后的apk重新编译成apk文件。 还原后的apk需要签名才能使用。 dex2jar: 将apk解压后的classes.dex文件,放在工具目录下运行d2j-dex2jar.bat classes.dex,获区对应classes-dex2jar.jar文件,直接用jd-gui查看源码java文件。 JD-GUI: 直接查看classes-dex2jar.jar代码 完整工具包,本站下载。 ♦ apktool使用方法: 反编译: 将test.apk放到apktool同级目录,使用cmd输入指令: apktool d test.apk 默认会在同级目录生成包含apk资源文件的test文件夹。 重新打包成apk 在apktool目录,输入命令: apktool b test apk被重新打包到test/dist文件夹下。 ♦ dex2jar & JD-GUI使用方法 将test.apk后缀名改为zip/rar解压后取得classes.dex文件,将此文件放到dex2jar目录下,运行命令 d2j-dex2jar.bat classes.dex 同目录下生成 classes-dex2jar.jar 文件。使用JD-GUI打开classes-dex2jar

android apk 防止反编译技术第二篇-运行时修改字节码

牧云@^-^@ 提交于 2020-03-03 18:24:05
上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372。接下来我们将介绍另一种防止apk反编译的技术-运行时修改字节码。这种方法是在工作中在实现app wrapping时,看到国外的一篇关于android 安全的介绍实现的并且独创。下面我们来介绍一下这种方法。 我们知道apk生成后所有的java生成的class文件都被dx命令整合成了一个classes.dex文件,当apk运行时dalvik虚拟机加载classes.dex文件并且用dexopt命令进行进一步的优化成odex文件。我们的方法就是在这个过程中修改dalvik指令来达到我们的目的。 一、dex文件格式 dex的文件格式通常有7个主要部分和数据區组成,格式如下: header部分记录了主要的信息其他的部分只是索引,索引的内容存在data区域。 Header部分结构如下: 字段名称 偏移值 长度 描述 magic 0x0 8 'Magic'值,即魔数字段,格式如”dex/n035/0”,其中的035表示结构的版本。 checksum 0x8 4 校验码。 signature 0xC 20 SHA-1签名。 file_size 0x20 4 Dex文件的总长度。 header_size 0x24 4 文件头长度