與安卓應用相關的文件類型有許多,他們之間通過編譯、反編譯可以互相轉換,下面總結一下這些文件類型,這些文件類型有.apk .java .class .jar .smali .dex ,自己也在學習之中,有什麼錯誤或者不足歡迎指正
逆向的過程一般是:輸入apk---apktool解析爲smali和dex---dex2jar轉換爲jar---使用jd-gui查看java代碼
這些文件的關係如圖:
1.apk文件
這是安卓應用安裝包的文件格式,本質是一個壓縮包,可以將後綴名改爲zip直接解壓,解壓縮後會得到dex文件、資源文件、so文件等
2.dex文件
dalvik執行文件,通過apktool或者直接解壓縮得到。
adb shell中的dalvik命令可以直接執行dex文件
3.jar文件
是一種歸檔文件,以zip格式構建,包含java和一些元數與資源文件
4.smali文件
dalvik字節碼文件,一種中間語言,相當於dalvik虛擬機的彙編語言
5.class文件
java虛擬機的可執行文件