Android反编绎

在Android开发过程当中,总免不了碰到各类各样的问题,咱们想参考其余人的想法,最好的方法莫过于直接看代码。因此咱们须要对其它APK进行反编绎获得咱们想要的资源,代码文件。虽然大部分应用都是通过混淆或者其它安全处理,但总比没有的好。java

如今咱们开始吧!android

 

 

一:APK资源反编绎安全

  • 工具准备

使用到的工具备: apktool工具

下载地址: http://code.google.com/p/android-apktool/ui

将下载好的文件解压后放到同一个文件夹下面:google

  • 对应ROM的Framework资源支持(咱们以三星S4机器为示例)

命令:adb pull system/framework SecFrameworkspa

该命令能够将Framework中的系统资源及相关类库都拿下来放到SecFramework文件夹中。3d

  • 将SecFramework中的系统资源APK文件提取出来(通常是framework-res.apk,三星S4里面加了另外一个twframework-res.apk)

命令:code

apktool if framework-res.apkxml

apktool if twframework-res.apk

  • 反编绎资源(这里咱们以三星的联系人(SecContacts.apk)为例)

命令:apktool d SecContacts.apk SC     (SC表示你须要将反编绎后的资源所放的文件夹名)

  • 到这一步,资源反编绎就成功啦,咱们能够查看SC目录下相关的联系人资源文件啦。

 

二:DEX反编绎

  • 工具准备

使用到的工具备:dex2jar, jd-gui

dex2jar下载地址:http://code.google.com/p/dex2jar/

jd-gui下载地址:http://java.decompiler.free.fr/?q=jdgui

  • 提取APK中的classes.dex文件(这里咱们以 CyanogenMod File Manager应用为例)

将APK改后缀名为ZIP,并解压。

提取其中的classes.dex文件。

  • 解压下载的dex2jar..运行命令:  dex2jar.sh CMFileManager/classes.dex

这时会在CMFileManager文件夹下面成一个classes_dex2jar.jar文件。

  • 使用JD-GUI工具直接打开该JAR文件便可。

 

三:ODEX反编绎

  • 工具准备

使用到的工具备:smail

工具下载地址: http://code.google.com/p/smali/

  • ODEX反编绎原理:首先将ODEX文件转换成DEX文件,DEX文件能够根据上面所述方法转换成JAR文件,而后就能够使用JD-GUI查看了。
  • ODEX转换成DEX须要Framework类库支持(这里一样以三星的SecContacts.odex为例)。
    因此咱们能够将SecContacts.odex直接放到咱们先前PULL出来的SecFramework文件平下面。
    一样将上面下载的四个文件也一并放进去。
    命令:java -jar ./baksmali-1.4.2.jar -x SecContacts.odex
    这时会在当前目录下生成一个out文件夹。
    使用命令:java -jar ./smali-1.4.2.jar out/ -o SecContacts.dex
    这时ODEX转换成DEX文件就成功了。 
  • 接下来就执行相关命令转换成JAR文件。

  • 使用JD-GUI工具查看便可

    

 

大功告成。

相关文章
相关标签/搜索