栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2009年12月13日 星期日

ARIA PS2-2 逆向工程

  CD root folder 包含多個 AFS 檔。每個 AFS 檔都是檔案集。 AFS 格式包含了子檔案的 filename offset 和 size 。 AFS 格式不包括壓縮及加密。

  解開 BG.AFS / CHR.AFS 等的圖檔集,就會得到大量的 BIP / T2P 檔。每個圖檔都有一對 BIP / T2P 檔。到底這兩個檔的關係如何,未可知。
  估計 BG.AFS 裡的子檔案皆是 background 檔,可以假設 BG.AFS 內所有圖片的大小都一樣。但問題是,每個 BIP / T2P 檔的大小不相等。可能是有壓縮。 Google Search 過,日本有 2ch 友說這是 LZ77 壓縮法。但把檔案丟到 Linux file 指令檢查,甚麼也分析不到。
  BIP 檔首 4 byte 似乎是解壓後檔案大小。 BG.AFS 裡的所有 BIP 檔,首 4 byte 是 little endian 的 0x00160100 。 0x00160100 = 1442048 = 3x800x600+2048 。背景檔是 800x600 的機會極高。不過, 2048 的 overhead 似乎大得有點離譜。另,PS2根本出不到800x600的解像度。
  至於其他圖案,首 4 byte 的數值有 0x40100/0x60180/0x60100 。但這些數值減去 2048 後,卻不能得出很好的質因數分解。另,這些檔的大小都是 0x80 的倍數,可以假設這些檔案都被加大到 0x80 的倍數,所以破壞了質因數分解。
  至於 T2P 檔,檔案比 BIP 小得多。每個檔案都有 "TIM2" 這個關鍵字。也似乎有壓縮,但如何解壓仍未可知。

  還未能完全開圖檔,就這樣。

沒有留言: