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工具查看便可

    

 

大功告成。

相關文章
相關標籤/搜索