1. 程式人生 > >安卓逆向學習筆記(0)- HelloWorld.apk的檔案結構

安卓逆向學習筆記(0)- HelloWorld.apk的檔案結構

        META-INF資料夾存放著apk的簽名信息。如果你還不瞭解安卓簽名機制,請看這篇文章:[014] Android應用程式簽名詳解
        開啟META-INF資料夾,可以看到3個檔案:CERT.RSA,CERT.SF,MANIFEST.MF。其中CERT.RSA包含了公鑰資訊和釋出機構資訊;MANIFEST.MF中儲存了除自身以外所有其他檔案的SHA-1並進行base64編碼後的值(注意:對於xml等文字格式的資原始檔,系統先將這些文字檔案編譯成二進位制檔案,再獲取二進位制檔案的SHA-1值並進行base64編碼);CERT.SF的生成過程分兩步:(1)讀取MANIFEST.MF檔案的SHA-1,然後將該SHA-1值base64編碼後儲存為SHA1-Digest-Manifest,所以與MANIFEST.MF檔案相比,CERT.SF會多出一個SHA1-Digest-Manifest值,(2)然後再逐個讀取MANIFEST.MF中每個資原始檔的Name和SHA1-Digest值再新增2個空行後進行SHA-1,將該SHA-1值進行base64編碼後依次寫到CERT.SF中。是否聽得迷迷糊糊,下面小弟就用HelloWorld.apk舉個栗子,手動模擬MANIFEST.MF檔案生成classes.dex的SHA1-Digest的過程:
      (1)通過HashTab外掛(該外掛下載地址見文章末尾)可以檢視到classes.dex檔案的SHA-1,如圖5所示: