標籤:android android反編譯 反編譯工具 簽名
android反編譯淺析
從接觸android開發開發,反編譯一直就是離不開的工具,學習好的android應用的代碼編寫規範。
這篇文章主要就是講述如何反編譯apk檔案得到java檔案的,反編譯不為了竊取,僅供學習交流代碼而已。本文的目錄結構為:
1、概述
2、詳細的講述apk工程的反編譯
概述:
分析Android工程的目錄結構可以知道,其基本上可以簡單的理解為三個部分:源碼,資源檔和編譯設定檔。這其中的資源檔(圖片,xml檔案,assert等)是從打包開始就直接存放在apk中的,圖片等無需反編譯,源碼(暫時接觸到java源碼)檔案則很有可能會被“混淆”以防止別人反編譯,混淆檔案存放在設定檔ant.properties檔案中的;而設定檔,主要是androidManifest.xml檔案則是直接暴露出來的,這很關鍵。擷取xml檔案盒源碼則成為反編譯最重要的任務。
下面來詳細的講述apk工程的反編譯一、使用編譯工具
本人也是直接從網上下載的反編譯工具,使用效果不錯,這裡提供:http://download.csdn.net/detail/feishangbeijixing/8094335
1、apktool,得到xml檔案
2、android反編譯工具
二、開工
a) Apk——> 工程目錄
這一步相對很簡單,主要是為了得到androidManifest.xml檔案,dex檔案,布局檔案和資源檔。有兩種方式都可以實現:
1、 直接將apk解壓縮
這樣的情況下,沒有經過“混淆”的apk工程是可以直接得到xml檔案(可直接閱讀的)和dex檔案的;但是經過“混淆”的apk工程檔案中xml檔案貌似不可以直接讀取(顯示亂碼)
2、 使用apktool工具
使用方法:先將apktool解壓縮,在apk檔案夾目錄下放置需要解壓縮的apk檔案並更名為123.apk。雙擊apkTool檔案(其實是一個windows的指令檔,也可知是可以通過Dos的方式啟動並執行),點擊之後根據如所示,執行反編譯或者回編譯。
b) Dex——>源碼
有上一步得到的dex檔案(在上一步中直接解壓就有可能得不到dex檔案,試過幾次貌似如此)
使用android反編譯工具中的dex2jar.bat工具,位置:android反編譯工具Android反編譯\dex2jar-0.0.9.15。
1、 執行命令:dex2jar.bat classes.dex(執行命令之前需要先將classes.dex檔案放置到dex2jar-0.0.9.15這個檔案夾下,執行命令之後就可以得到classes_dex2jar檔案)
2、 用jd-gui工具查看上一步中得到的class-dex2jar包檔案。就可以看到源碼了
3、反編譯完了就可以查看並修改沒有經過“混淆”的源碼了。然後再用apkTool來回編譯並簽名就可以使用“你的”apk應用了
android之反編譯淺析