1. 程式人生 > >解開反編譯android o的框架程式碼

解開反編譯android o的框架程式碼

華為mate10使用了最新的androido,並進行了預編譯,然後baksmali現在還不支援androido,導致反編譯困難,於是自己動手diy

 

1、        adb pull /system/framework,把整個框架的程式碼pull 出來,特別是arm64目錄下的vdex檔案

2、        從vdex檔案扣出dex檔案,並構成jar檔案,這一步可以使用16進位制編輯器,找到dex\n035開頭的magic,並把往後的內容匯出成一個classes.dex檔案,然後並壓縮到jary誰的中,注意,boot-framework.vdex裡,包括兩個dex檔案

3、        adb pull /system/app/iaware/oat/arm64/base.vdex,pull出預編譯後的vdex程式碼,並扣出dex檔案

4、        下載baksmali原始碼,編譯並除錯執行baksmali d –x base.vdex –d <2中生成的framework的.jar目錄>

5、        哪裡錯了改哪裡,還要把華為的bootclasspath替換掉原本的bootclasspath,或者直接使用

https://github.com/lcweik/smali

6、        再執行一下baksmali d –x base.vdex –d<2中生成的framework的.jar目錄>,全部都反編譯出來了,儲存在out目錄,再 smali a out –o base.dex,就行了。