2019年3月27日 星期三

Android odex to dex

本篇主要是教學如何從odex (Optimized Dalvik Executable)轉譯成dex格式檔案,由於Android在運行時會將dex檔案轉成odex放到/data/dalvik-cache目錄下,每次執行都會從這邊將檔案載入,因此從記憶體裡面拖(Dump)出來的檔案都是odex檔,如果將它丟到反編譯的軟體,大部分都會出錯,因此需要轉成dex格式才行。


baksmali與smali工具下載路徑
https://bitbucket.org/JesusFreke/smali/downloads/

1. 抓取手機裡面的framework




2. 使用baksmali將test.odex檔案轉碼




3. baksmali的輸出檔為out




4. 使用smali將轉碼後的smali轉成dex




特別注意


檔案開頭的符號必須是dey 036 (odex檔案格式Magic Code),不然在轉成dex可能會出現錯誤或是無法轉譯。