安卓逆向學習----smali,dex,java等文件之間轉換關係

與安卓應用相關的文件類型有許多,他們之間通過編譯、反編譯可以互相轉換,下面總結一下這些文件類型,這些文件類型有.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虛擬機的可執行文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章