[著作權歸作者wixe所有,歡迎轉載,但請事先告知作者並註明出處]
要反編譯一個apk譯檔案,需要做以下幾步:
1.找到apk安裝檔案
2.找到安裝軟體的*.dex譯檔案
3.dump dex檔案
4.分析dex檔案擷取想要的代碼
1.找到apk安裝檔案
這個比較容易,把手機或者模似器安裝好後,可以在eclipse的File Explorer下找到安裝程式的apk譯檔案,也可以通過adb命令找到:
$ adb shell
# cd /system/app
cd /system/app
# ls
2.找到安裝軟體的*.dex譯檔案
運行安裝軟體後,會在android檔案系統下產生一個*.dex檔案,一般在目錄/data/dalvik-cache下,也可以通過adb命令找到:
$ adb shell
# cd /data/dalvik-cache
cd /data/dalvik-cache
# ls
3.編譯軟體對應的dex檔案,通過以下指令:
adb shell dexdump -d -f -h /data/dalvik-cache/data@app@be.citylive.twitpic.apk@classes.dex > twitpic.text
指令參數解釋:
-d : disassemble code sections
-f : display summary information from file header
-h : display file header details
-C : decode (demangle) low-level symbol names
-S : compute sizes only
4.擷取需要的代碼:
開啟剛才得到的編譯出來的text檔案,會看到形如以下的代碼:
Class #0 header:
class_idx : 32
access_flags : 196625 (0x30011)
superclass_idx : 61
interfaces_off : 0 (0x000000)
從這個譯檔案裡我們很容易得到代碼資訊
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/lastsweetop/archive/2009/11/24/4864090.aspx