本文純屬學(xué)習(xí)之用,如拿此代碼用于商業(yè),與本人無關(guān).
代碼是自己寫的,寫得爛,有很多改進(jìn)的地方.
起始字節(jié)-結(jié)束字節(jié)
| 1-4 |
64 00 00 00 文件頭 |
| 5-8 |
4字節(jié),文件個(gè)數(shù) (把一個(gè)pkg文件后面的文件列表數(shù)了下,確實(shí)是文件個(gè)數(shù)) |
| 9-12 |
4字節(jié),文件列表區(qū)的偏移地址(通過比較兩個(gè)pkg文件,確實(shí)是偏移地址) |
| 13-16 |
4字節(jié),文件列表區(qū)的大小,其實(shí)就是從上一面的偏移地址到文件末尾
|
分析文件列表區(qū)數(shù)據(jù),文件名長度是不等長的,這樣讀取文件列表時(shí),就從頭讀過去,根據(jù)標(biāo)志位來確定。
下面是每條文件記錄的各項(xiàng)屬性:
| 1 - 2 |
接下來的字符串的長度,也就是文件名路徑的字符串長度
|
| 3 - X |
帶相對路徑的文件名稱(說明:X是文件名稱結(jié)束的偏移位置)
|
| X - X+4 |
00 00 00 00 識別標(biāo)志
|
| X+5 - X+8 |
文件起始偏移 |
| X+9 - X+12 |
原始文件大小 |
| X+13 - X+16 |
文件大小 |
說明:直接從PKG里面解出來的圖片文件(主要是MIF格式的)是經(jīng)過zlib壓縮過的,必須要解壓后才能使用。
解壓我們只要用到了zlib的uncompress函數(shù)就行了。
工具源代碼下載 : PkgManager.rar
參考資料:http://www.vbgood.com/viewthread.php?tid=87382&extra=page%3D1